我有一个在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!");
}
}
我正在使用这种更精细的方式从this link调用我的函数,因为如果我只使用window.onload或document.onload,则找不到我的控件(cbIMEI)。使用这种更精细的方法,我没有那个问题。但是,我的函数格式ICCID_IMEI表现得很奇怪。我不知道是不是因为我调用formatICCID_IMEI的方式,或者只是格式ICCID_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!");
从不运行。如果我取消注释所有行,则不会运行任何警报。如果我处于调试模式,则同样的行为也适用。如果条件被取消注释,我的光标永远不会进入我的功能。到底是什么?
答案 0 :(得分:1)
你没有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);