关于更改功能的JavaScript工作得不好

时间:2016-01-14 09:43:37

标签: javascript jquery html

我有一个可以使用HTML select标记的JavaScript代码。

$(function() {
  $('#to_name').on('change',function() {
    if( $(this).val()=="<?php echo $ceo_chunks[0];?> <?php echo $ceo_chunks[1];?> <?php echo $ceo_chunks[2]?>") {
      $('#to_designation').val('<?php echo $ceo_chunks[3];?>');
      $('#dear_sir').val('<?php echo $ceo_chunks[0]?> <?php echo $ceo_last_name;?>') ;

      if( $(this).val()=="<?php echo $liaison_one_chunks[0];?> <?php echo $liaison_one_chunks[1];?> <?php echo $liaison_one_chunks[2]?>") {
        $('#to_designation').val('<?php echo $liaison_one_chunks[3]?>')
        $('#dear_sir').val('<?php echo $liaison_one_chunks[0]?> <?php echo $liaison_one_last_name;?>')
        $("#liaison_one").show()
        $("#dear_liaison_one").show()
      } else {
        $("#ceo").hide()
        $("#liaison_two").hide()
        $("#dear_ceo").hide()
        $("#dear_liaison_two").hide()
      }

      if( $(this).val()=="<?php echo $liaison_two_chunks[0];?> <?php echo $liaison_two_chunks[1];?> <?php echo $liaison_two_chunks[2]?>") {
        $('#to_designation').val('<?php echo $liaison_two_chunks[3]?>')
        $('#dear_sir').val('<?php echo $liaison_two_chunks[0]?> <?php echo $liaison_two_last_name;?>')
        $("#liaison_two").show()
        $("#dear_liaison_two").show()
      } else {
        $("#ceo").hide()
        $("#liaison_one").hide()
        $("#dear_ceo").hide()
        $("#dear_liaison_one").hide()
      }
    };
  });
});

这里是html代码

<select name="to_name" id="to_name">
        <option value="<?php echo $ceo_chunks[0];?> <?php echo $ceo_chunks[1];?> <?php echo $ceo_chunks[2]?>"><?php echo $ceo_chunks[0];?> <?php echo $ceo_chunks[1];?> <?php echo $ceo_chunks[2]?></option>

        <option value="<?php echo $liaison_one_chunks[0];?> <?php echo $liaison_one_chunks[1];?> <?php echo $liaison_one_chunks[2]?>"><?php echo $liaison_one_chunks[0];?> <?php echo $liaison_one_chunks[1];?> <?php echo $liaison_one_chunks[2]?></option>

        <option value="<?php echo $liaison_two_chunks[0];?> <?php echo $liaison_two_chunks[1];?> <?php echo $liaison_two_chunks[2]?>"><?php echo $liaison_two_chunks[0];?> <?php echo $liaison_two_chunks[1];?> <?php echo $liaison_two_chunks[2]?></option>
      </select>



        <br>

        <select name="to_designation" id="to_designation">
        <option value="<?php echo $ceo_chunks[3]?>" id="ceo"><?php echo $ceo_chunks[3]?></option>
        <option value="<?php echo $liaison_one_chunks[3]?>" id="liaison_one"><?php echo $liaison_one_chunks[3]?></option>
        <option value="<?php echo $liaison_two_chunks[3]?>"id="liaison_two"><?php echo $liaison_two_chunks[3]?></option>
      </select>


<div id="dear_ceo" style="margin-top:10px; width:auto">

      <input type="text" name="dear_sir" id="dear_ceo" value="Dear <?php echo $ceo_chunks[0]?> <?php echo $ceo_last_name;
?>"/>
      </div>
      <div id="dear_liaison_one" style="margin-top:10px; width:auto; display:none">
        <input type="text" name="dear_sir" id="dear_liaison_one" value="Dear <?php echo $liaison_one_chunks[0]?> <?php echo $liaison_one_last_name;?>"/>
      </div>
      <div id="dear_liaison_two" style="margin-top:10px; width:auto; display:none">
        <input type="text" name="dear_sir" id="dear_liaison_two" value="Dear <?php echo $liaison_two_chunks[0]?> <?php echo $liaison_two_last_name;?>"/>
      </div>

我的功能非常适用于select标签,但它不适用于输入类型文本。

我该如何解决?

2 个答案:

答案 0 :(得分:0)

我建议你在行尾(适当的时候)使用分号。我知道它们不是强制性的,但认为它们是一种很好的做法。

最后,if-clause末尾还有一个分号。它可能不会制动任何东西,只是为了以防万一......

尝试用下划线(_)替换空格。

例如:

<?php echo $ceo_chunks[0];?> <?php echo $ceo_chunks[1];?> <?php echo $ceo_chunks[2]?>

会变成

<?php echo $ceo_chunks[0];?>_<?php echo $ceo_chunks[1];?>_<?php echo $ceo_chunks[2]?>

并检查您是否可以正确警告已更改输入的值。

答案 1 :(得分:0)

您的第一个if语句明显缺少结束括号。 请关闭支架。您的代码中没有逻辑错误。

 $(function() {
      $('#to_name').on('change',function(){


      if( $(this).val()=="<?php echo $ceo_chunks[0];?> <?php echo $ceo_chunks[1];?> <?php echo $ceo_chunks[2]?>"){
        $('#to_designation').val('<?php echo $ceo_chunks[3];?>')
        $('#dear_sir').val('<?php echo $ceo_chunks[0]?> <?php echo $ceo_last_name;?>')

        /*$("#ceo").show()
        $("#dear_ceo").show()*/

    //}    ---uncomment this ---
每次调用函数时,

还包括一个终止分号。例如

 if( $(this).val()=="<?php echo $ceo_chunks[0];?> <?php echo $ceo_chunks[1];?> <?php echo $ceo_chunks[2]?>"){
        $('#to_designation').val('<?php echo $ceo_chunks[3];?>');
        $('#dear_sir').val('<?php echo $ceo_chunks[0]?> <?php echo $ceo_last_name;?>');
    }