使用JavaScript禁用文本框。

3
正如标题所说,我正在尝试在打开文件时禁用文本框。
<form name='registration' action="registration.php" method="post" onSubmit="return formValidation();">
    <table>
        <tr>
            <td>FirstName:</td>     
            <td><input type = "Text" name = "firstname" id="1"></p></td>
        </tr>
    </table>
</form>

我尝试使用以下JavaScript代码禁用它:

function formValidation() {
    var fn = document.registration.firstname;
    if(fname_validation(fn)) {}
    document.getElementById("1").disabled = true;
}

function fname_validation(fn) {
    var fn_len = fn.value.length;
    var fn_char = /^[A-Za-z]+$/;
    if (fn_len == 0) {
        alert("first name cannot empty");
        return false;
    }
    if (!fn.value.match(fn_char)) {
        alert("first name must enter alphabet only");
        return false;
    } else {
        return true;
    }
}

为什么文本框还是没有被禁用?

首先,没有单选按钮。 其次,你想什么时候禁用文本输入? 现在,使你的输入禁用的函数是在表单提交时调用的。因此,只有当你提交表单时,你的输入才会被禁用...可能太晚了。如果你想让你的输入在开始时就被禁用,你的输入应该像这样。 - service-paradis
哎呀,我把标题写错了。我想测试如何使用JavaScript禁用文本框,当我打开HTML页面时。因此,当我打开HTML文件时,文本框将直接被禁用。 - Asker
请注意:我建议使用jQuery而不是JavaScript(jQuery是JavaScript,可以让生活更轻松)。https://dev59.com/dmoy5IYBdhLWcg3wiekp - Dom
我相信你们提供的代码和参考资料是可行的,但我尝试将其放在我的JavaScript文件中仍然无法工作。 - Asker
2个回答

7

首先,这里没有单选按钮。 其次,您想在什么时候禁用文本输入? 目前,使您的输入被禁用的函数是在表单提交时调用的。因此,在您提交表单时才会禁用您的输入...可能太晚了。 如果您想从一开始就禁用输入,则应该将您的输入框设置为以下内容:

<input type = "Text" name = "firstname" id="1" disabled="disabled" />

如果您想使用JavaScript禁用它,您需要在加载时执行它。 可以像这样:

window.onload = function() {
   document.getElementById('1').disabled = true;
};

0
如果您希望在页面加载时禁用文本框,请将disabled属性添加到您的input中。
<input type = "Text" name = "firstname" id="1" disabled />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接