0
我的asp.net MVC視圖中有幾個文本框,當用戶點擊它們時會顯示一個彈出框。彈出窗口還有一個文本框,用戶在jquery彈出窗口中輸入一個值,然後單擊確定,所選值將顯示在單擊的文本框中。我在這個文本框上使用了textbox.change事件,但它並沒有被觸發,因爲事件只被觸發如果我手動單擊文本框。如何強制更改jquery事件,而無需用戶更改文本框中的文本?
$(document).ready(function() {
jQuery("#NumberCalledTo").click(function() {
displayAlertMessage($(this).val());
});
$("#dial-prefix").dialog({
autoOpen: false,
modal: true,
width: 470,
resizeable: true,
buttons: {
"OK": function() {
var selectedDialPrefixValue = $("#dialprefixPopup").val();
var selectedPhoneValue = $("#PhoneNumber").val();
// remove + and space from dialprefix selected on popup
selectedDialPrefixwithoutPlus = selectedDialPrefixValue.replace(selectedDialPrefixValue.substring(0, 1), " ");
selectedDialPrefixwithoutPlus = $.trim(selectedDialPrefixwithoutPlus);
// number must be 10 or 11 digits long
if (selectedDialPrefixwithoutPlus == "44" && selectedPhoneValue.substring(0, 1) == "0" && selectedPhoneValue.length < 11) {
//displayAlertMessage("Invalid number. Must must have 10 digits.");
$("#div-uk-error-message").dialog("open");
return;
}
else if (selectedDialPrefixwithoutPlus == "44" && selectedPhoneValue.length < 10) {
//displayAlertMessage("Invalid number. Must must have 9 digits.");
$("#div-uk-error-message").dialog("open");
return;
}
// remove 0 from phone number
if (selectedPhoneValue.substring(0, 1) == "0") {
selectedPhoneValue = selectedPhoneValue.replace(selectedPhoneValue.substring(0, 1), "");
}
if (selectedPhoneValue != '') {
var selectedDialPrefix = $("#SelecteddialprefixId").val();
var selectedPhone = $("#SelectedPhoneId").val();
$("#" + selectedDialPrefix).val(selectedDialPrefixValue);
$("#" + selectedPhone).val(selectedPhoneValue);
}
$(this).dialog("close");
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
});
$(「#dial-prefix」)。對話框在文本框中單擊打開。由於此彈出窗口在不同的頁面和不同的文本框中使用,因此我無法向OK按鈕功能添加任何代碼。
請提出一個解決方案,它
感謝您的回覆。我需要在哪裏致電此活動?在document.ready中?我不能改變,$(「#dial-prefix」)。對話框OK函數,因爲它是通用的。請建議。 – DotnetSparrow
我試圖將上面的內容更改爲$('#NumberCalledTo')。trigger('change'); jQuery(「#NumberCalledTo」)。change(function(){ displayAlertMessage($(this).val()); });但它沒有工作 – DotnetSparrow
@DotnetSparrow是它的錯字?在上面的代碼中,我看到一個'click'函數,但你只是給我發送了一個'change'函數。你真的有哪些?如果元素在頁面加載時不存在(ajax或其他),那麼你必須將事件綁定到一個靜態父元素,比如'$(document).on('change',' #NumberCalledTo',functoin(){displayAlertMessage($(this).val());});' – Ohgodwhy