0

以下のスクリプトは、入力テキストに基づいて選択タグからドロップダウンメニューを自動入力するために機能します。ユーザーが自動入力されたオプションを変更したい場合でも、実際にそれを作成するにはどうすればよいですか。自動入力機能をオンにしたまま、ドロップダウンメニューに選択したオプションが入力されているので、自動入力を続けたいのですが、ユーザーがこのオプションを気に入らない場合でも、変更することができます。 it ..以下は、ドロップダウン選択を自動入力するための作業スクリプトです。

<html>
<head> <title> validation </title >
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
    <script type="text/javascript">
    function checkValues()
{
      jQuery("#ddl_StxName").val("stm3","stx2");
      jQuery("#ddl_rtumodel").val("both");

  ESNList = jQuery("#ESNList").val();
  if((ESNList >= 986329) && (ESNList <= 999999))
  {
    jQuery("#ddl_StxName").val("stx2");
    jQuery("#ddl_rtumodel").val("globalstar");
  }
  if ((ESNList >= 660000) && (ESNList <= 699999))
  {
    jQuery("#ddl_StxName").val("mmt");
    jQuery("#ddl_rtumodel").val("globalstar");
  }
   if ((ESNList >= 200000) && (ESNList <= 299999))
  {
    jQuery("#ddl_StxName").val("stm3");
    jQuery("#ddl_rtumodel").val("stmcomtech");
  }
   if ((ESNList >= 1202114) && (ESNList <= 1299999))
  {
    jQuery("#ddl_StxName").val("smartone");
    jQuery("#ddl_rtumodel").val("globalstar");
}

  // you should be able to follow the above and add your own conditions  
}

function checkInput()
{
  jQuery(":text").each(function (){
    if (jQuery(this).val().length == 0)
    {
      jQuery(this).css("border", "2px solid red");
    }
    else
    {
      jQuery(this).css("border", "0");
    }
  });
}
setInterval(function () {checkInput();checkValues();}, 500);
</script>
<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

うーん、私の本能は、setIntervalを介してこれらの一定のバックグラウンドチェックをすべて行うのではなく、イベントを使用することです....

このようなもの

$(":text").css("border", "2px solid red");
$(":text").keyup(function(){
  var enteredData = $(this).val()
  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;
    }

  }
});

伝統を守って、ここにフィドルがあります

もしそれが私のプロジェクトだったら、製品範囲を管理するためのオブジェクトの作成と配列を見て、それらを使用してドロップダウンとイベントを構築すると思います。

于 2013-01-16T05:31:51.010 に答える