Javascript:如何访问表单对象的字段

Javascript:如何访问表单对象的字段,javascript,forms,Javascript,Forms,根据我的理解,表单发送整个表单对象。我有这张表格 <form name ="bannerForm" method="post"> <table> <tr> <td>Enter banner message</td> <td><input class="messagebannner" type="text" id="bannerMessage" name="bannerMe

根据我的理解,表单发送整个表单对象。我有这张表格

<form name ="bannerForm" method="post">
 <table>
     <tr>
         <td>Enter banner message</td>
         <td><input class="messagebannner" type="text" id="bannerMessage" name="bannerMessage" size="40" onblur="validateEmptyFields(this);"></td>
         <td><span name="messageBanner" id="messageBanner"></span></td>
     </tr>

你可以做一些jQuery的魔术,也可以不做,但更简单

$(inputField).parent().next().children('span').text(your text here);

您可以像这样访问表单和表单字段

//form acccess
document.forms["my_form_name"];
//fields access
document.forms["my_form_name"]["input_name"];

您的表单验证方法需要一些改进

退房。一旦你了解了它的概念,这就很容易了

您的HTML和JavaScript在稍作调整后应该如下所示

HTML:


我个人一点也不喜欢这种验证方法,但它很容易理解,而且似乎适合您的目的。当涉及到JavaScript和HTML表单时,我会研究其他验证实践。

您想在表单中注入什么价值?我只想另外显示一些文本:为什么您的span有一个名称?很好的回答,@Fuzzyma。它是一个显示元素,不应该有表单提交的名称。谢谢@FuzzymaI在这个问题中没有看到任何与jQuery相关的内容,但这确实有效。好吧,你可以不用它。但是我没有心情写它^^^我想通过JavaScript来写,那么你必须用老办法写,坚果,我想你可能会自己想出来。不管怎样:为什么要投我一票?这个答案没有错!如果名称是有效标识符,也可以使用点属性,例如,上面可以是:var form=document.forms.my_form_name和form.input_name。test x.value==null永远不会为真,因为表单控件的值始终作为字符串返回,并且包含空字符串的任何字符串都不等于null。请不要参考w3Schools,那里的代码很糟糕,MDN文章要好得多。
//form acccess
document.forms["my_form_name"];
//fields access
document.forms["my_form_name"]["input_name"];
<form id="bannerForm" name="bannerForm" method="post">
    <table>
        <tr>
            <td>Enter banner message</td>
            <td>
                <input class="messagebannner" type="text"
                    name="bannerMessage" size="40" onblur="validateBannerForm();" />
            </td>
            <td>
                <span id="messageBanner"></span>
            </td>
        </tr>
    </table>
</form>
function validateBannerForm() {
    var x = document.forms["bannerForm"]["bannerMessage"];
    if (x.value == null || x.value == "") {
        document.forms["bannerForm"]["messageBanner"].value = "This is an error message.";
        return false;
    }
}