我已经尝试将jQuery change
事件放在document.ready
中,但没有运气。 change
事件在Firefox和IE中有效,但在Chrome中无效。更改ctl00_ContentPlaceHolder1_Txt_RegNo
文本框中的值时,甚至不会显示警告框。
但是当我输入文本框并使用文本框中的退格键删除值时,它就会在chrome中工作。它应该在改变chrome中文本框中的值时第一次工作。
脚本:
$("#ctl00_ContentPlaceHolder1_Txt_RegNo").change(function () {
alert("done");
var regno = $("#<%= Txt_RegNo.ClientID %>").val();
var fleetno = $("#<%= Txt_FleetNo.ClientID %>");
var customername = $("#<%= txtCustomerName.ClientID %>");
var ridername = $("#<%= txtRiderName.ClientID %>");
var phoneno = $("#<%= txtPhoneNo.ClientID %>");
var email = $("#<%= txtEmail.ClientID %>");
var chassis = $("#<%= txtchassis.ClientID %>");
var ddlmodel = $("#<%= ddl_Model.ClientID %>");
var ddltype = $("#<%= ddl_type.ClientID %>");
var ddlcolor = $("#<%= ddl_color.ClientID %>");
var ddl_year = $("#<%= ddlyear.ClientID %>");
var KMS = $("#<%= txtKMSRUN.ClientID %>");
var ddladvisor = $("#<%= ddl_ServiceAdvisor.ClientID %>");
var expirydate = $("#<%= txtexpirydate.ClientID %>");
var notes = $("#<%= txtnotes.ClientID %>");
var data = { REGNO: regno };
var jsonData = JSON.stringify(data); $.ajax({
type: "POST",
url: "JobCard.aspx/Populate_Reg",
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
if (data.d.length > 0) {
var e;
for (var i = 0; i < data.d.length; i++) {
fleetno.val(data.d[i].FleetNO);
customername.val(data.d[i].CUSTOMER_NAME);
ridername.val(data.d[i].RIDERNAME);
phoneno.val(data.d[i].PHONENO);
email.val(data.d[i].EMAIL);
chassis.val(data.d[i].CHASSISNO);
ddlmodel.val(data.d[i].MAKE);
ddltype.val(data.d[i].MODEL);
ddlcolor.val(data.d[i].color);
ddl_year.val(data.d[i].Year);
KMS.val(data.d[i].KMSRUN);
ddladvisor.val(data.d[i].ADVISORID);
expirydate.val(data.d[i].EXPIRYDATE);
notes.val(data.d[i].NOTES);
e = expirydate.val()
}
var d1 = Date.parse(e);
var dt = new Date(d1);
var dateExpiry = dt.getMonth() + 1 + "/" + dt.getDate() + "/" + dt.getFullYear();
var d = new Date; var datenow = d.getMonth() + 1 + "/" + d.getDate() + "/" + d.getFullYear();
if (dateExpiry <= datenow) {
checkRegNo()
}
}
})
});
});
答案 0 :(得分:0)
尝试使用jquery的keypress
事件,
$("#ctl00_ContentPlaceHolder1_Txt_RegNo").keypress(function () {
//your method body
)};
如果您想在用户完成输入后获取文本框的值,则可以使用blur
事件。一旦文本框失去焦点,就会调用此事件。
答案 1 :(得分:0)
相反更改和按键事件我使用了jquery的focusout事件,它根据我的要求工作正常
$("#ctl00_ContentPlaceHolder1_Txt_RegNo").focusout(function () {
//your method body
)};
答案 2 :(得分:0)
正如here所写,您可以使用monitorEvents
JavaScript函数来显示在元素上触发的所有事件。
monitorEvents($('#ctl00_ContentPlaceHolder1_Txt_RegNo')[0]);
在Chrome中,您会发现,只有input
事件在完成时才会被触发。
input
事件在所有浏览器中都不起作用,因此如果您将其与change
事件结合使用,它应该适用于大多数浏览器。
$('#ctl00_ContentPlaceHolder1_Txt_RegNo').on('change input', function() {
// Handle event
)};