1

我有一个表格,表格行中有一个输入字段和一个选项框,我希望<tr>只有在选择选项框中的特定值时才会出现带有输入字段的表格。到目前为止,我有以下编码,它隐藏了我<tr>的输入字段,但不再显示它。

 $script = <<< EOF
<script type='text/javascript'>
    jQuery(document).ready(function($) {
        $('#row_sports').hide(); //works


         if($('#sel_rugby').is(':selected') || $('#sel_climbing').is(':selected')){
             $('#row_sports').show();

         }else{
            $('#row_sports').hide();
         }

    });
</script>
EOF;
        echo $script;


    echo '<table border="1">';
    echo '  <tr>';
    echo '      <td>';
    echo '          <select name="sports">';
    echo '              <option>Baseball</option>';
    echo '              <option id="sel_rugby">Rugby</option>';
    echo '              <option>Soccer</option>';
    echo '              <option>Sailing</option>';
    echo '              <option id="sel_climbing">Climbing</option>';
    echo '          </select>';
    echo '      </td>';
    echo '  </tr>';
    echo '  <tr id="row_sports">';
    echo '      <td>';
    echo '          <input name="sports_cl_rg" />';
    echo '      </td>';
    echo '  </tr>';
    echo '</table>';

BR & thx,迈贝克

4

3 回答 3

1

如果您将 id 放在所有选项中或通过文本而不是 id 比较它们会更好,这将是更好的事件。我的意思是使用 Climbing 而不是 sel_climbing。还要提供 id 以选择以访问它,因为您可能在页面上有很多选择。我将其更改为按照您的代码工作,但如果您愿意,可以按照我的建议进行操作。此处提供演示 JsFiddle

 $('select').change(function() {
 alert($('#sports option:selected').text());
    $('#row_sports').hide(); //works
   if($('#sports option:selected').attr('id') == "sel_rugby" || $('#sports option:selected').attr('id') == "sel_climbing"){
     $('#row_sports').show();

 }else{
    $('#row_sports').hide();
 }
});​
于 2012-05-05T09:59:41.380 回答
1
<script type='text/javascript'>
    jQuery(document).ready(function($) {
        $('#row_sports').hide(); //works

        $('select').change(function() {
         if($('#sel_rugby').is(':selected') || $('#sel_climbing').is(':selected')){
             $('#row_sports').show();

         }else{
            $('#row_sports').hide();
         }
        });

    });
</script>

也使用更改功能..在这里有效

于 2012-05-05T10:01:02.373 回答
1

试试这个代码:

<script type="text/javascript" charset="utf-8">
    jQuery(document).ready(function($) {
        $('#row_sports').hide(); //works

        $('select[name="sports"]').change(function() {
            var trig = ["Rugby", "Climbing"]; // set elements here

            if (trig.indexOf($(this).val()) > -1) {
                $('#row_sports').show();    
            } else {
                $('#row_sports').hide();
            }
        });

    });
    </script>
于 2012-05-05T10:06:11.500 回答