[英]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.