我制作了以下小Javascript脚本以在我的页面上启用一些表单元素:
function unHide()
{
if($('#UserName').val() == "")
{
alert('Please Enter a User Name first');
}
else
{
$('#radio-choice-1').checkboxradio('enable');
$('#radio-choice-2').checkboxradio('enable');
$('#radio-choice-1-board').checkboxradio('enable');
$('#radio-choice-2-board').checkboxradio('enable');
$('#TransNum').textinput('enable');
$('#UserContinue').remove();
$('#nextButton').show();
}
}
问题是,单击正确的按钮时不会调用此方法。即使警报也没有出现。这是HTML:
<label for="UserName" style="vertical-align: top;">User Name:</label>
<input type="text" name="UserName" id="UserName" placeholder="Ex: LesniakBjEVS101" />
...
<a data-role="button" data-icon="check" data-mini="true" id="UserContinue"
style="float:right;" onclick="javascript:unHide(); return false;">Continue...</a>
...
<section id="nextButton" hidden>
<a href="salamanderSelect.html" data-role="button" data-icon="forward"
data-mini="true" style="float:right;">Next</a>
</section>
我遇到的问题是当我点击提交按钮时,绝对没有任何反应。我没有从Javascript获得任何反馈,也没有任何反馈。
任何帮助将不胜感激! 谢谢!
编辑:
在尝试建议后,我仍然无法让javascript做任何事情。我尝试了多种浏览器,但仍然没有。
我昨天也开始工作......代码也没有任何变化
编辑2:
显然,如果我的脚本是HTML文件中的最后一个内容,即使在标记之外也是如此。
答案 0 :(得分:4)
虽然onclick不需要javascript:
,但它仍然适用于许多浏览器。以下是您的示例:http://jsfiddle.net/ukWcp/2/
仅在javascript:
中使用href
。
虽然我建议使用firebug或chrome中的javascript控制台和调试器进行调试,但其他人提到使用全部javascript解决方案进行绑定。这是可取的。
答案 1 :(得分:4)
由于您已经在使用jQuery,为什么不使用它来附加您的活动,而不是使用笨重的onclick
属性。
<a data-role="button" data-icon="check" data-mini="true" id="UserContinue"
style="float:right;">Continue...</a>
$("#UserContinue").click(function(e) {
if($('#UserName').val() == "") {
alert('Please Enter a User Name first');
}
else {
$('#radio-choice-1').checkboxradio('enable');
$('#radio-choice-2').checkboxradio('enable');
$('#radio-choice-1-board').checkboxradio('enable');
$('#radio-choice-2-board').checkboxradio('enable');
$('#TransNum').textinput('enable');
$('#UserContinue').remove();
$('#nextButton').show();
}
e.preventDefault();
});
答案 2 :(得分:1)
$(document).ready(function() {
$("#UserContinue").click(function() {
if($('#UserName').val() == "")
{
alert('Please Enter a User Name first');
}
else
{
$('#radio-choice-1').checkboxradio('enable');
$('#radio-choice-2').checkboxradio('enable');
$('#radio-choice-1-board').checkboxradio('enable');
$('#radio-choice-2-board').checkboxradio('enable');
$('#TransNum').textinput('enable');
$('#UserContinue').remove();
$('#nextButton').show();
}
return false;
);
});
如果您正在使用jQuery,为什么不完全使用它?如果这是您想要的,那么最后返回false会使click事件停止继续。
编辑:
你在原帖中说“我遇到的问题是当我点击提交按钮时,绝对没有任何反应。我没有从Javascript获得任何反馈,也没有任何反馈。”
然而,您已将点击事件附加到不完整的锚标记(它缺少href)。那么您是否希望在单击提交按钮或单击锚标记时触发该行为?如果您希望在单击提交按钮时触发触发器,则需要更改$(“#UserContinue”)以引用提交按钮而不是锚标记。或者使用.submit()事件处理程序而不是.click(),http://api.jquery.com/submit/。
如果这不是问题,那么我建议您修改帖子以包含所有代码,并说明在点击哪些元素后您期望的行为。
编辑2:
我相信你没有围绕.ready()函数包装你的jQuery,请参阅现在包含.ready()的修订代码片段。 .ready()确保在使用jQuery之前完全加载DOM。
答案 3 :(得分:1)
保留你的功能并将事件处理程序添加到你的javascript而不是标记:
$(document).ready(function() {
$('#UserContinue').click(function() {
unHide();
});
});
简短版本:
$(document).ready(function() {
$('#UserContinue').click(unHide);
});