Javascript indexOf条件不符合预期

时间:2013-12-30 17:37:12

标签: javascript jquery

我有一个在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!");

从不运行。如果我取消注释所有行,则不会运行任何警报。如果我处于调试模式,则同样的行为也适用。如果条件被取消注释,我的光标永远不会进入我的功能。到底是什么?

1 个答案:

答案 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);
相关问题