Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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“更改”事件在我的示例中不起作用?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么jquery“更改”事件在我的示例中不起作用?

Javascript 为什么jquery“更改”事件在我的示例中不起作用?,javascript,jquery,Javascript,Jquery,当[name=tip]具有第一个值时,显示特定元素,否则将显示另一个元素 这两个元素都具有display:none属性。当我加载页面时,我会检查select值并自动淡入所需元素 除了尝试更改所选选项外,所有操作都正常:什么都没有发生。我将JavaScriptOnChange和jquery.change都添加到该项中,但什么也没有发生。你能告诉我为什么在我的例子中它不起作用吗 <form id="fm-account-properties-tab" method=&quo

当[name=tip]具有第一个值时,显示特定元素,否则将显示另一个元素

这两个元素都具有display:none属性。当我加载页面时,我会检查select值并自动淡入所需元素

除了尝试更改所选选项外,所有操作都正常:什么都没有发生。我将JavaScriptOnChange和jquery.change都添加到该项中,但什么也没有发生。你能告诉我为什么在我的例子中它不起作用吗

<form id="fm-account-properties-tab" method="POST">
<table width="300px" style="margin-top:10px;" align="center" >

    <tr>
        
        <td align="left">
        <select class="easyui-combobox" name="tip" style="width:200px;" class="easyui-validatebox" required="true" onchange="changeType();">
                    <option value="l1">l1</option>
                    <option value="l2">l2</option>
                    <script>
                        $(document).ready(function(){
                            $('[name="tip"]').val('<?php echo $a['tip'];?>');
                        });
                    </script>
        </select>
        </td>
    </tr>
    <tr id="l1" style="display:none">

        <td align="left">
        <select class="easyui-combobox" name="l1"  style="width:200px;" class="easyui-validatebox" required="true">
                    
        </select>
        </td>
    </tr>
    <tr id="l2" style="display:none">

        <td align="left">
        <select class="easyui-combobox" name="l2"  style="width:200px;" class="easyui-validatebox">
                    
                    
        </select>
        </td>
    </tr>
</table>
</form>

<script>
function changeType()
{

if($('[name="tip"]').val()=='l1')
    {
    $('#l1').fadeIn();
    $('#l2').hide();
    }
else
    {
    $('#l2').fadeIn();
    $('#l1').hide();
    }
}



$(document).ready( function () {
        
        changeType();

            $('[name="tip"]').change(function(){ alert('1');});//it never alerts me
    });
可能您应该使用js错误事件来找出代码中的错误。例如,试试看 {…所有代码都在这里…} 捕手
{alerttheerror+err.message;}。这些代码将警告您的错误以及错误发生的确切时间点。祝你好运

首先,您应该尝试添加

console.log("It works");
或者

在您的方法中,这样您就知道是否实际调用了它

然后我认为问题可能来自FadeIn,它只在css{display:none}和可见性不同的“hidden”元素上工作,所以你确定你的元素是?如有疑问,您可以更换

.fadeIn();

然后,如果您有更多信息,请告诉我。

对于较新的jQuery版本jQuery>1.7.x,请使用.on

在select上有一个双类属性


这是一个工作示例

您是如何声明您的DOCTYPE的?即使它与您的问题没有直接关系,以数字开头的id属性在HTML4中也是无效的。但是它们是HTML5。有多少元素的名称是tip?这个问题提出的问题太多了…不是关于id的问题。我在这里发布了数字id,虽然它们是stringsone元素,带有名称提示…主要选项只是一个小注释:为什么用下划线结束id?我知道这是允许的:但为什么要这样做?它似乎永远不会达到$'[name=tip]'。更改函数{alertIt works;};在那里…我从来没有得到过警告,这就是为什么我说这是关于改变方法的原因。你使用的是jquery 1.7或更新版本吗?使用了…但是,什么都没有发生:P将发布html到添加的html,希望现在更好也许在www.jeasyui.com库中。删除该类并将其添加到js:`$'select[name=tip]'。组合框{onSelect:functionrec{changeType;};谢谢,终于成功了。非常感谢,我会把你的答案设为接受:
.fadeIn();
.css('visibility','visible').hide().fadeIn(); // hide() does the same as display: none
function changeType() {
    if ($('[name="tip"]').val() == '___') {
        $('#1').fadeIn();
        $('#2').hide();
    } else {
        $('#2').fadeIn();
        $('#1').hide();
    }
}

$(document).ready(function () {
    changeType();
    $('select[name="tip"]').on('change', function() {
        changeType();
    });
});