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