【发布时间】:2011-07-21 13:57:37
【问题描述】:
希望有人能解决 Firefox 3 上的这种奇怪现象。
我基本上有 3 个单选按钮和 3 个文本输入字段(见以下代码):
<input type="radio" name="group1" id="preloaded" value="preloaded_img" checked="checked" onclick="SetVals();" />
<input type="text" name="text1" id="text1" />
<input type="radio" name="group1" id="custom" value="custom_img" onclick="SetVals();" />
<input type="text" name="text2" id="text2" />
<input type="radio" name="group1" id="vector" value="vector_img" onclick="SetVals();" />
<input type="text" name="text3" id="text3" />
现在,每次我点击一个特定的单选按钮时,其他两个按钮的文本输入元素都应该被清除并被禁用(参见下面的代码)。
function SetVals() { // using JQuery + straight JS for this...
$(document).ready(function() {
$(":radio").click(function(event) {
// use event.target to determine which radio button was clicked
if (event.target.id=="preloaded") {
document.getElementByID("text1").disabled=false;
$("#text2").val("");
$("#text3").val("");
document.getElementById("text2").disabled=true;
document.getElementById("text3").disabled=true;
} else if (event.target.id=="custom") {
document.getElementByID("text2").disabled=false;
$("#text1").val("");
$("#text3").val("");
document.getElementById("text1").disabled=true;
document.getElementById("text3").disabled=true;
} else if (event.target.id=="vector") {
document.getElementByID("text3").disabled=false;
$("#text1").val("");
$("#text2").val("");
document.getElementById("text1").disabled=true;
document.getElementById("text2").disabled=true;
}
});
});
}
此外,当页面初始加载时,text2 和 text3 输入字段通过 javascript 被禁用,因为 text1 字段默认被选中:
document.getElementById("text2").disabled=true;
document.getElementById("text3").disabled=true;
我遇到的问题是它需要 2(两次)点击才能在 Firefox 上运行。在 Internet Explorer 上,它按预期工作。
因此,当第一次单击单选按钮时 - 没有任何反应。当第二次点击它时,就会触发 Onclick 事件。
注意:我为此使用 JQuery,但也使用直接 Javascript 无济于事。
您可以简单地将我的代码复制并粘贴到编辑器上,然后使用 Firefox 打开页面以直接查看问题。
有没有其他人遇到过这种情况?它是某种 Firefox 错误吗?如果是这样,是否有解决方法?
欢迎任何和所有帮助、cmets、建议和输入。
提前致谢!
【问题讨论】:
标签: javascript jquery firefox onclick radio-button