-2

以下のJqueryコードは非常にうまく機能し、条件に基づいて入力値をチェックします..しかし、HTMLフォームのESNListテキストフィールドの場合、同じテキストフィールドに多くのESN(数値)をコンマで入力して区切ることができます。そうすることで、Jqueryは、同じテキストフィールドに入力されたすべての数値がESNListの条件と一致することを確認します。ご協力いただければ幸いです。

 <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 = parseInt(enteredData);
          switch (true){
            case ( esnList >= 986329 && esnList <= 999999):
                $("#ddl_StxName").val("stx2");
                $("#ddl_rtumodel").val("globalstar");
                break;
            case ( esnList >= 660000 && esnList <= 699999):
                $("#ddl_StxName").val("mmt");
                $("#ddl_rtumodel").val("globalstar");
                break;
            case ( esnList >= 200000 && esnList <= 299999):
                $("#ddl_StxName").val("stm3");
                $("#ddl_rtumodel").val("stmcomtech");
                break;
            case ( esnList >= 1202114 && esnList <= 1299999):
                $("#ddl_StxName").val("smartone");
                $("#ddl_rtumodel").val("globalstar");
                break;
          }

        }
      });
      });
    </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

3 に答える 3

0

リストをコンマ区切り文字で分割し、個々の要素を検証できます。

$.each(enteredData.split(","), function(i, str){
    var esnList = +str;
    /* enter validation here */
});
于 2013-01-29T22:54:58.113 に答える
0

parseInt()直接使用する代わりに、enteredData最初に使用します

esnList = enteredData.split(',');

parseInt()次に、チェックを使用して実行するか、Alexanderが行ったように、お気に入りのJSライブラリのマップ関数を使用して、ループでその配列を調べることができます。

プレーンJS:

for(var i = 0; i < esnList.length; i++) {
    ... // parseInt(esnList[i]) and perform checks
}

jQuery:

$.each(esnList, function(i, esn) {
    ... // parseInt(esn) and perform checks
});
于 2013-01-29T22:55:07.113 に答える
0

入力フィールドでユーザーからのクリーンで整形式のデータを期待することは、視覚的な指示があっても楽観的です。

セキュリティと衛生状態に入るのではなく、ユーザーが整形式のコンマ区切りリストを入力したと仮定します。

153, 189, 635

input要素の入力値を取得し、変数に対してsplit()を実行する関数を作成する必要があります。これにより、値を基準に照らしてチェックするためにループできる配列が得られます。

于 2013-01-29T22:55:51.287 に答える