Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更新时,Jquery在下拉更改时显示隐藏div无法正常工作_Javascript_Jquery_Yii2 - Fatal编程技术网

Javascript 更新时,Jquery在下拉更改时显示隐藏div无法正常工作

Javascript 更新时,Jquery在下拉更改时显示隐藏div无法正常工作,javascript,jquery,yii2,Javascript,Jquery,Yii2,问题:我在应用程序的下拉列表中使用Jquery for Show/Hide divchange,当我创建新表单时,它工作得更好,但当我更新它时,表单会折叠到普通视图,而我没有得到应该查看的表单,这使得我再次更改下拉选项,以查看设置为显示的字段 我的JQuery: <?php $this->registerJs(' $(document).ready(function(){ $(\'.ordinary\').hide(); $(\'.special\').

问题:我在应用程序的
下拉列表中使用Jquery for Show/Hide div
change,当我创建新表单时,它工作得更好,但当我更新它时,表单会折叠到普通视图,而我没有得到应该查看的表单,这使得我再次更改下拉选项,以查看设置为显示的字段

我的JQuery:

<?php 

 $this->registerJs(' 
$(document).ready(function(){
     $(\'.ordinary\').hide(); 
     $(\'.special\').hide();        
 $(\'#company-typeofcompany\').change(function () {
    var x = $(this).val();
    if (x === "ordinary") {
        $(\'.ordinary\').show();  
        $(\'.special\').hide();
    }
    else
    {
        $(\'.special\').show();
        $(\'.ordinary\').hide(); 
    }
});

});', \yii\web\View::POS_READY);

?>

我猜在更新时,您必须检查下拉值的条件,如果是普通值,则必须显示普通值,并隐藏另一个值的特殊值和替代值。代码可能是

$(document).ready(function(){
     $('.ordinary').hide(); 
     $('.special').hide();
     if ($('#company-typeofcompany').val() == "ordinary") {
         $('.ordinary').show();  
         $('.special').hide();
     } else {
         $('.special').show();
         $('.ordinary').hide(); 
     }
     $('#company-typeofcompany').change(function () {
         var x = $(this).val();
         if (x === "ordinary") {
             $('.ordinary').show();  
             $('.special').hide();
         } else {
             $('.special').show();
             $('.ordinary').hide(); 
         }
     });
});

如果代码已修复,而不是使用yii2的工具进行注册,则可以将其像本机代码一样添加到html代码下方的页面中&请参阅事件中的错误。这可能有助于解决出现的问题。一旦我更改下拉列表并选中,我不会出现任何错误,我需要始终查看show div。如果您的下拉列表将具有预选的普通,请将if($(“#company typeofcompany”).val()=“普通”){更改为if($(“#company typeofcompany”).val()=“特殊”){并显示console.log($(“#company typeofcompany”).val())如果我将其更改为特殊,现在普通,而不是隐藏,它总是显示console.log($(“#company typeofcompany”).val()的情况如何;你告诉我在jquery中编写console.log。对吗?是的……你必须查看该选项框中设置的值,然后我们可以在存在问题的地方进行调试