2

だから私は以下のJqueryコードを修正しようとしました..ESNListテキストフィールドに、複数の値をコンマで区切って入力する必要がありますが、それらは同じ範囲内にある必要があります..たとえば、ループ内の以下の条件では、 ESNListに986329から999999までの数値を入力した場合、ESNListフィールドの2番目の入力は最初の入力と同じ範囲にある必要があります。それ以外の場合は、両方のESNが同じ範囲にある必要があるというアラートをスローします。チェックを実行するためにループを実行しましたが、機能していません..誰かがエラーがどこにあるかを私に示すことができますか..フィドルはトンを助けるでしょう、私は時々人々がここで何を言おうとしているのか理解するのに苦労しますうまくいかなかった..以下は私のコードです..

<html>
    <head>
    <script type="text/javascript" src="jquery/jquery-1.8.3.js"></script>
    <script type="text/javascript">

    $(function () {


    $(":text").css("border", "2px solid red");
      $(":text").keyup(function(){
        var enteredData = $(this).val()
        console.log(enteredData);
        if (enteredData == "") {
          $(this).css("border", "2px solid red");
        } else {
          $(this).css("border", "inherit");
        }
        if ($(this).attr("id") == "ESNList"){
       esnList = enteredData.split(',');
           }

           for(var i = 0; i < esnList.length; i++) {
            if  ( parseInt(esnList[i]) >= 986329 && parseInt(esnList[i]) <= 999999) {
                $("#ddl_StxName").val("stx2");
                $("#ddl_rtumodel").val("globalstar");
                }
            else if ( parseInt(esnList[i]) >= 660000 && parseInt(esnList[i]) <= 699999) {
                $("#ddl_StxName").val("mmt");
                $("#ddl_rtumodel").val("globalstar");
                 }
            else if ( parseInt(esnList[i]) >= 200000 && parseInt(esnList[i]) <= 299999) {
                $("#ddl_StxName").val("stm3");
                $("#ddl_rtumodel").val("stmcomtech");
                 }
            else if ( parseInt(esnList[i]) >= 1202114 && parseInt(esnList[i]) <= 1299999) {
                $("#ddl_StxName").val("smartone");
                $("#ddl_rtumodel").val("globalstar");
          }

          else { alert("ESNs should be within the same range"); }

        }


      });
      });
    </script> </head>
    <body>
    <form id="provision">
        ESNList:    <input  type="text" id="ESNList" name="ESNList" size="30" /> <br />
        ESN Start:<input type="text" id="ESNStart" name="ESNStart" size="10" /> <br />
        ESN End: <input type="text" id="ESNStart" name="ESNStart" size="10" /> <br />
        UnitName:<input type="text" id="STxName" name="STxName" size="30"  />  <br />  
         Unit Model:   <select name="STxName" id="ddl_StxName">
        <option value="stx2">STX2</option>
        <option value="stm3" selected>STM3</option>
        <option value="acutec">Acutec</option>
         <option value="trackpack">Trackpack</option>
        <option value="mmt">MMT</option>
        <option value="smartone">Smartone</option>
        <option value="smartoneb" >SmartOneB</option>
        </select> <br />
        RTU Model Type:
         <select name="rtumodel" id ="ddl_rtumodel">
        <option value="globalstar">GlobalStar</option>
        <option value="both">Both</option>
        <option value="comtech">Comtech</option>
        <option value="stmcomtech">STMComtech</option>
        </select> <br />
        <input type="submit" value ="submit"  />
        </form>
    </body>
    </html> 
4

1 に答える 1

0

デバッグのためにこれを試してください:

for(...)行の前に、

console.log(esnList.length);

その後、for(...)行の後:

console.log("entering for loop, i = " + i );

これらはjavascriptコンソールに書き込まれ、ほとんどのブラウザーの開発者ツールで表示できます。同様のログをif/elseステートメントに含めます。これらのどれがトリガーされるかを確認することで、問題が自分自身にある場所を絞り込むことができます。

あなたはあなたが使っているものと正しい軌道に乗っています、それ以上の頻度alert()で使ってください。console.log()

于 2013-01-30T17:09:01.720 に答える