【问题标题】:Validate AJAX generated form field验证 AJAX 生成的表单字段
【发布时间】:2010-10-22 20:58:18
【问题描述】:

我有一个带有选择字段 A 的表单。该字段可以根据 URL 动态填充,也可以照常选择。

一旦在字段 A 中选择了一个值,选择字段 B 将被填充并使用 JQuery AJAX 公开。

这就是问题所在。如果字段 A 保持不变,并由 URL 动态填充,则字段 B 将正确验证。但是,如果字段 A 发生更改,字段 B 将不再尝试验证。

字段 A

<select name="FieldA" id="FieldA">
<option value="">Please Select</option>
<?php 
    while($FieldA= mysql_fetch_array($result2)) {
?>
<option value="<?php echo $FieldA['FieldAID']; ?>"<?php if ($var == $FieldA['FieldAID']) echo " selected=\"selected\""; ?>><?php echo $FieldA['FieldAName']; ?>    </option>
<?php } ?>
</select>

字段 B

<select name="FieldB" id="FieldB">
<option value="">Please Select</option>
<?php 
    while($FieldB = mysql_fetch_array($result)) {
?>
<option value="<?php echo $FieldB['FieldBID']; ?>"><?php echo str_replace('|',' - ',$FieldB['FieldBName']); ?></option>
<?php } ?>
</select>

验证标准

<script language="JavaScript" type="text/javascript">
var frmvalidator  = new Validator("FormName");  
frmvalidator.addValidation("FieldA","req","Please select FieldA.");  
frmvalidator.addValidation("FieldB","req","Please select FieldB.");
</script>

除了 AJAX 调用破坏了字段 B 的验证之外,一切正常。如果未重新填充字段 B,则它可以正常工作。字段 B 是使用包含文件构造的,因此无论是由页面填充还是由 AJAX 调用填充,它都是相同的。

谢谢!

【问题讨论】:

  • 那么...你能告诉我们你从 AJAX 调用中得到的确切值吗?
  • 你最后是怎么解决的?

标签: php jquery ajax validation


【解决方案1】:

我想你正在使用这个 js 库: http://www.javascript-coder.com/html-form/javascript-form-validation.phtml

如果它给你带来很多问题,也许是时候换一个更强大的验证库了。

我推荐这个:

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

出现在jquery网页中,非常完整。语法或多或少是这样的:

$("#signupForm").validate({
        rules: {
            firstname: "required",
            lastname: "required",
            username: {
                required: true,
                minlength: 2
            },
            password: {
                required: true,
                minlength: 5
            },
            confirm_password: {
                required: true,
                minlength: 5,
                equalTo: "#password"
            },
            email: {
                required: true,
                email: true
            },
            topic: {
                required: "#newsletter:checked",
                minlength: 2
            },
            agree: "required"
        },
        messages: {
            firstname: "Please enter your firstname",
            lastname: "Please enter your lastname",
            username: {
                required: "Please enter a username",
                minlength: "Your username must consist of at least 2 characters"
            },
            password: {
                required: "Please provide a password",
                minlength: "Your password must be at least 5 characters long"
            },
            confirm_password: {
                required: "Please provide a password",
                minlength: "Your password must be at least 5 characters long",
                equalTo: "Please enter the same password as above"
            },
            email: "Please enter a valid email address",
            agree: "Please accept our policy"
        }
    });

【讨论】:

  • 我将尝试更新表单以使用 JQuery 验证,然后报告它是否有效。我有一个同事也有同样的问题,即使是新的验证。 AJAX 生成的字段不会验证,但会正确发布信息。谢谢!
猜你喜欢
  • 1970-01-01
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-20
  • 2016-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多