多表单动态字段JavaScript验证



我有多个形式:

<?php for ($i = 0; $i > $n; $i++) { ?> // n is no. of value (no limit)
    <form>
        <input name="<?php echo $i; ?>venue" type="text">
        <input name="roster" type="text">
        <input type="submit" name="btn_venue">
    </form>
<?php } ?>
    <form>
        <input name="hospitality" type="text">
        <input name="template" type="text">
        <input type="submit" name="btn_hospitality">
    </form>
    ...
    ...
    <form>
        <input name="element" type="text">
        <input name="alignment" type="text">
        <input type="submit" name="btn_xyz">
    </form>

我希望validation(不应该是空白)以所有形式,所以如何使用验证?

我尝试了jQuery验证:

<script>
    $('document').ready(function () {
        $('form').each(function (key, form) {
            $(form).validate({
                rules: {
                    hospitality: {
                        required: true
                    },
                    //...
                    //...
                    alignment: {
                        required: true
                    }
            });
        });
    });
</script>

我有管理静态名称字段验证,但我不知道动态venue名称验证。有人可以帮助我吗?

如果只有一种形式易于维护但动态多个表单提交验证如何验证。

一次只提交一个表单,但特定表单验证了如何可能?

尝试一下。它通过每种形式和每个形式都通过每个输入(类型文本),并为每个输入构建每个输入的规则。然后将动态构建的规则馈送到验证函数。

$('document').ready(function () {
    $('form').each(function (key, form) {
        // build the rules object dynamically
        var rules = {};
        // loop through each input in the form
        $(form).find('input[type="text"]').each(function(idx, obj) {
            // make a rule for this input
            rules[obj.name] = {"required": true};
        });
        $(form).validate({
            "rules": rules
        });
    });
});

okey这不是确定这样做的最干净的方法,而是第一个跨越我的脑海。首先,编辑您的HTML,因此表格具有id="form$i",输入具有id="input$i",,并且提交具有id="$i"。还要添加类以提交class="validate"

<?php for ($i = 0; $i > $n; $i++) { ?> // n is no. of value (no limit)
    <form id="form<?php echo $i; ?>">//so id="form2" for example
        <input id="input<?php echo $i; ?>" name="<?php echo i; ?>venue" type="text">// id="input2"
        <input name="roster" type="text">
        <input id="<?php echo $i; ?>" class="validate" type="submit" name="btn_venue">//id="2"
    </form>
<?php } ?>

jQuery应该有效,我将在代码中解释每一行

<script>
    $(function () {
        $(".validate").click(function () { //this is call for each click button with class validate
            var id = $(this).attr('id');//getting id of the clicked element which is $i
            var formid = 'form' + id;//creating new var formid which will target formid (for example: in first loop $i=1, so id=1, and formid=form1)
            var input = 'input' + id;//creating input which value will be input$i
            $('#' + formid).on('submit', function (e) {//on form submit validate function
                if ($(#input).value == '') {
                    return false;
                } else {
                    return true;
                }
            });
        });
    });
</script>

希望您了解逻辑,可能是我在某个地方犯了错误,所以请仔细看看..

最新更新