1

我正在使用 jQuery 验证插件。我有一个简单的函数,可以将一个输入的值复制到另一个输入。

function sameAsShipping() {
    $('#billingFirstName').val($('#firstName').val());
}

我想使用 valid() 方法验证新复制的输入值。如果输入的值不为空,我正在尝试调用 valid() 方法。

$(document).ready(function(){
    $(":input, select").each(function() {
        if(!$(this).val() === "")
            $(this).valid();
    });
});

除了使用 jQuery 操作输入值之外,如果提交表单并且出现错误,我会回显之前提交的值。我也希望这些能够在加载时验证这些字段,但是,只有在输入中有值的情况下。

<input type="text" id="billingFirstName" name="billingFirstName" class="required" placeholder="First Name" value="<?php if(isset($_SESSION['firstName'])){echo $_SESSION['firstName'];} ?>">
4

1 回答 1

0

无法直接使用 javascript 选择动态创建的 DOM 对象。您需要选择在任何 DOM 操作之前存在的静态元素。

这是一个例子:

$(document).ready(function(){
    $("body :input, select").each(function() {
        if(!$(this).val() === "")
            $(this).valid();
    });
});

body 元素是静态的(不是由 javascript 创建的),因此可以选择。从 tehre 您可以正常导航到任何元素。你也不需要使用body。任何静态 html 元素或由后端编程语言创建的元素都可以使用。

或者,您可以使用jQuery 的liveQuery插件。

于 2013-08-13T19:26:00.847 回答