[英]Javascript indexOf condition not behaving as expected
我有一个在window.onload上运行的javascript函数:
if(window.onload) {
var curronload = window.onload;
var newonload = function() {
curronload();
formatICCID_IMEI();
};
window.onload = newonload;
} else {
window.onload = formatICCID_IMEI;
function formatICCID_IMEI() {
var IMEI = $find("<%=cbIMEI.ClientID %>");
alert(IMEI.get_textBoxControl().value);
alert(IMEI.get_textBoxControl().value.indexOf("."));
if (IMEI.get_textBoxControl().value.indexOf(".") > -1) {
alert("Hi!");
}
}
我正在使用通过此链接调用函数的更精细的方法,因为如果仅使用window.onload或document.onload,则找不到控件(cbIMEI)。 使用这种更精细的方法,我没有这个问题。 但是,我的函数formatICCID_IMEI行为异常。 我不知道这是由于我调用formatICCID_IMEI的方式还是由于我没有看到的formatICCID_IMEI引起的。 如果我注释掉
if (IMEI.get_textBoxControl().value.indexOf(".") > -1) {
alert("Hi!");
第一和第二警报告诉我
IMEI.get_textBoxControl().value = 351937.04.230880.7
然后
IMEI.get_textBoxControl().value.indexOf = 6
一切都如预期。 但是,如果我注释掉上面的两个警报行并取消注释IF条件,则该行
alert("Hi!");
永远不会运行。 如果我取消注释所有行,则不会运行任何警报。 如果我处于调试模式,则相同的行为也适用。 如果条件未注释,则我的光标根本不会进入函数。 有没有搞错?
您没有if(window.onload)
条件的右括号-这是故意的吗?
既然您使用的是jQuery,为什么不只使用标准的$(document).ready
东西呢?
function formatICCID_IMEI() {
var IMEI = $find("<%=cbIMEI.ClientID %>");
alert(IMEI.get_textBoxControl().value);
alert(IMEI.get_textBoxControl().value.indexOf("."));
if (IMEI.get_textBoxControl().value.indexOf(".") > -1) {
alert("Hi!");
}
}
$(document).ready(formatICCID_IMEI);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.