1

我到处查看并尝试了各种脚本,但我一直遇到同样的问题。

我正在尝试禁用或隐藏提交按钮,直到选中复选框。

我遇到的问题是,除非我打开了兼容性,否则在 IE10 中什么都不起作用,而且它们大多数时候在 FF 20.0.1 中不起作用。

这是我到目前为止所尝试的。


    <input type="checkbox" name="agree" value="yes" onclick="agreed.disabled = !this.checked" />Do you Agree? &nbsp;
    <input type="submit" name="agreed" id="agreed" value="{L_AGREE}" class="button1" disabled="disabled" />

<script type="text/javascript">
function checkSubmit(ele, id) {
    x = document.getElementById(id);
    if (ele.checked == true) x.disabled = false;
    else x.disabled = true;
}
</script>

<input type="checkbox" name="myCheck" onclick="checkSubmit(this, 'agreed')" value="y" />Do you Agree? &nbsp;
<input type="submit" name="agreed" id="agreed" value="{L_AGREE}" class="button1" disabled="disabled" />

<script type='text/javascript' src='http://code.jquery.com/jquery-1.7.1.js'></script>
<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){
$("#terms").click(function() {
    if ($(this).is(':checked')) {
        $('#agreed').removeAttr('disabled');
    } else {
        $('#agreed').attr('disabled', 'disabled');
    }
});

});//]]>  

</script>

            <input type="checkbox" class="required" id="terms"/>Do you Agree? &nbsp;
            <input type="submit" name="agreed" id="agreed" value="{L_AGREE}" class="button1" disabled="disabled" />

我尝试了许多其他方法来做到这一点,但仍然遇到 IE10 或 FF 的问题。

我需要的是帮助让某些东西在所有浏览器中都能正常工作。

4

1 回答 1

2

第一个示例更可能适用于某些浏览器,而不适用于其他浏览器,具体取决于它们是否通过其 ID将元素放在window或对象上。document

要修复它,请使用document.getElementById().

<input type="checkbox" name="agree" value="yes" onclick="document.getElementById('agreed').disabled = !this.checked" />Do you Agree? &nbsp;
<input type="submit" name="agreed" id="agreed" value="{L_AGREE}" class="button1" disabled="disabled" />

只要函数是全局的,第二个应该可以在任何浏览器中工作,尽管你可以缩短它。

function checkSubmit(ele, id) {
    document.getElementById(id).disabled = !ele.checked;
}
于 2013-04-17T00:41:01.543 回答