簡體   English   中英

Javascript indexOf條件表現不符合預期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM