簡體   English   中英

JQuery 沒有獲取表單輸入值

[英]JQuery doesn't get form input value

我有以下代碼使用ajax調用控制器操作並使用kendo窗口呈現部分視圖,但它沒有獲取表單元素。

在我看來,我使用了這個按鈕

@(Html.Kendo().Button()
            .Name("textButton")
            .Content("Text button")
            .HtmlAttributes( new {type = "button"} )
            .Events(ev => ev.Click("onClick")))

和劍道窗口

@(Html.Kendo().Window().Name("ValidateAddress")
                .Title(@Localizer["Validate Address"].Value)
                .Visible(false)
                .Modal(true)
                .Draggable(true)
                .Width(500)
)

這里 jQuery 看起來像

   $(document).ready(function () {
        function onClick(e) {                
            var getAddress = {                             
                AddressLine1: $('#AddressLine1').val(),
                AddressLine2: $('#AddressLine2').val(),
                City: $('#City').val()
            };
            var window = $("#ValidateAddress").data("kendoWindow");
            var PopUpTitle = "Validate Address ";
                window.setOptions({
                    title: PopUpTitle,
                    content: ""
                });

                window.refresh({
                    url: "/Address/Address/VerifyAddress",
                    type: "POST",
                    data: JSON.stringify(getAddress),
                    contentType: "application/json; charset=utf-8"
                });
                window.open();
                window.center();
        }

        $("#textButton").kendoButton({
            click: onClick
        });
    });

看起來 Kendo 沒有使用 id 屬性,而是使用 asp-for。 嘗試這個:

$(document).ready(function () {
    function onClick(e) {                
        var getAddress = {                             
            AddressLine1: $('[asp-for=AddressLine1]').val(),
            AddressLine2: $('[asp-for=AddressLine2]').val(),
            City: $('#City').val()
        };
        var window = $("[asp-for=ValidateAddress]").data("kendoWindow");
        var PopUpTitle = "Validate Address ";
        window.setOptions({
            title: PopUpTitle,
            content: ""
        });

        window.refresh({
            url: "/Address/Address/VerifyAddress",
            type: "POST",
            data: JSON.stringify(getAddress),
            contentType: "application/json; charset=utf-8"
        });
        window.open();
        window.center();
    }

    $("[asp-for=textButton]").kendoButton({
    click: onClick
    });
});

或者,也許,您可以嘗試將劍道與此“兼容”

$(document).ready(function () {
    let adjustArray = $("[asp-for]:not([id])");
    adjustArray.each( index => {
        let el = $(adjustArray[index]);
        el.attr('id', el.attr('asp-for'));
    });
    function onClick(e) {                
        var getAddress = {    
            ... continuation of your code

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM