onchange事件引发了候补

时间:2014-01-30 14:24:04

标签: javascript php jquery onchange

所以我正在处理php中的hidingshowing控件,我有<select>字段change eventonchange我要隐藏“单一员工”以及其他选项的控件。所以这是我的代码:

  <select name="civilstatus" class="form-control" id="civilstatus">
        <option value="Single">Single</option>
        <option value="Married">Married</option>
        <option value="Widow">Widow</option>
        <option value="Annulled">Annulled</option>
        <option value="Seperated">Seperated</option>
  </select>

  $(document).on('change','#civilstatus',function(){
    var cstatus = $(this).val();
    if(cstats === 'Single'){
        $('#spouse').slideUp( 1000 ).hide(0);
        $('.spouse').slideUp( 1000 ).hide(0);
        return false;
    }else{
        $('.spouse').val(null);
        $('#spouse').fadeToggle( 1000 ).show();
        $('.spouse').fadeToggle( 1000 ).show();
        return false;
    }
})

所以我的问题是,当我交替选择时,它也可以交替工作。我想要的只是在<select>的值时隐藏控件。因为当我选择其他选项Widow时,控件会隐藏,当我选择Seperated时,控件会显示。那么如何解决这个问题呢?

2 个答案:

答案 0 :(得分:1)

您确定fadeToggle().show()是您想要的吗? .show()在这种情况下不会有任何影响。

我认为您正在寻找.fadeIn()

答案 1 :(得分:0)

我添加了一个控制台日志功能,你可以测试你得到的回复: 祝你好运:)

           <select name="civilstatus" class="form-control" id="civilstatus">
            <option value="Single">Single</option>
            <option value="Married">Married</option>
            <option value="Widow">Widow</option>
            <option value="Annulled">Annulled</option>
            <option value="Seperated">Seperated</option>
            </select>
            <script type="text/javascript">
            $('#civilstatus').on('change', function(){
            var cstatus = $(this).val();
            console.log(cstatus);
            if(cstatus == 'Single'){
                $('#spouse').slideUp( 1000 ).hide(0);
                $('.spouse').slideUp( 1000 ).hide(0);
                return false;
            }else{
                $('.spouse').val(null);
                $('#spouse').fadeToggle( 1000 ).show();
                $('.spouse').fadeToggle( 1000 ).show();
                return false;
            }
            });     

            </script>