在更改输入标记时使用javascript进行表单验证


form validation using javascript in changing input tags

我需要使用JavaScript验证表单。表单一直在更改,因为我使用字段名称表中的数据来打印每个字段(如姓名、地址、电话号码)。我使用循环来打印字段的标签和相应的文本输入标记。(例如name:textbox输入姓名,phone no:textbox输入电话号码)最后在提交表单并输入详细信息表时,将这些值放入数组中。

以下是打印每个字段和文本框的代码:

while ($row=mysql_fetch_array($result)){
    echo'<labelfor='.$row['field_name'].'name=field_id>'.$row['field_name'].':</label>';                        
    echo'<inputtype="text" name=field_name[]id="'.$row['field_id'].'":value="'.$row['field_value'].'" size="20" class = "inpBox" >';
}

现在我需要使用JavaScript检查这些字段是否为空,然后更改特定文本框的样式。任何帮助都将不胜感激。

您需要挂接表单的提交事件。然后您可以执行以下操作:

这是给jQuery:的

$("form").submit(function{
    $('input[type="text"]',"form").each(function(){
        var $me = $(this);
        var status = true;
        if($me.val() == ""){
            $me.addClass("input-validation-error");
            status = false;
        }
        //Return status. True=Form is valid, False=Form is NOT valid
        return status;
    });
});

您可以在此处阅读更多信息:http://api.jquery.com/submit/

要获取javascript的值,可以执行以下操作:

var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
    var me = inputs[i];
    if(me.value == "") {
        me.className = "input-validation-error";
    }
}​

一般谷歌"动态表单验证"

对于您的特殊情况,您将感兴趣看见https://developer.mozilla.org/en/DOM/document.getElementsByClassName并在所有元件上循环。您可能需要在输入字段中添加额外的属性,以定义是否需要验证以及所需的验证类型。