javascript - 具有相同类的动态生成文本框的远程验证

标签 javascript php jquery validation

我的动态生成的文本框有问题。 我希望对所有文本框进行必需远程验证。

HTML

<li>
    <label class="label">name 1</label>
    <input type="text" name="name_1" id="name_1" class="req_aap" value="" />
    <label id="aap_error" class="error"></label>
</li>
<li>
    <label class="label">name 2</label>
    <input type="text" name="name_2" id="name_2" class="req_aap" value="" />
    <label id="aap_error" class="error"></label>
</li>
<li>
    <label class="label">name 3</label>
    <input type="text" name="name_3" id="name_3" class="req_aap" value="" />
    <label id="aap_error" class="error"></label>
</li>
<li>
    <label class="label">name 4</label>
    <input type="text" name="name_4" id="name_4" class="req_aap" value="" />
    <label id="aap_error" class="error"></label>
</li>
................can be any number of fields................

JS

$.validator.addClassRules("req_aap", {
    required:true,
    remote:{
        url: "some_ajax.php",
        type: "post",
        data: {
            name: function() {return $(this).val();},
            tblNM:'someTable'
        },
        complete: function(data){
            return data;
        }
    }
});

some_ajax.php:

if(isset($_REQUEST['name'])) {
    if(getValFromTbl('name',$_REQUEST['tblNM'],'name="'.addContent($_REQUEST['name']).'"'.$fld)!='')
    {
        $valid = 'false';
    }
    else {
        $valid = 'true'; // Allowed
    }
    echo $valid;
}

getValFromTbl 是返回记录是否存在的函数。 这工作得很好。

我得到的 true 和 false 完全符合我的要求,但我的 jQuery 验证也不断给出错误。 它总是进入错误条件并给出验证错误如果我输入true值,那么它也会给出错误。

最佳答案

我在表单中尝试了完全相同的示例,因为我没有 getValFromTbl(),所以我尝试用 true 代替它并检查名称字符串。工作正常..看看代码是否有帮助..

html页面

<!DOCTYPE html>
<html>
<head>
    <title>trying jquery validation</title>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
    <script type="text/javascript">
        $(function(){
            $('.frm').validate();
            $.validator.addClassRules("req_aap", {
                required:true,
                remote:{
                    url: "some_ajax.php",
                    type: "post",
                    data: {
                        name: function() {return $(this).val();},
                        tblNM:'someTable'
                    }
                    complete: function(data){
                        return data;
                    }
                }
            });
        });
    </script>
</head>
<body>

<form class="frm">
    <ul>
        <li>
            <label class="label">name 1</label>
            <input type="text" name="name_1" id="name_1" class="req_aap" value="" />
            <label id="aap_error" class="error"></label>
        </li>
        <li>
            <label class="label">name 2</label>
            <input type="text" name="name_2" id="name_2" class="req_aap" value="" />
            <label id="aap_error" class="error"></label>
        </li>
    </ul>
    <input type="submit"></input>
</form>

</body>
</html>

some_ajax.php

<?php
if(isset($_REQUEST['name'])) {
    if($_REQUEST['name'] != '')
    {
        $valid = 'false';
    }
    else {
        $valid = 'true'; // Allowed
    }
    echo $valid;
}

关于javascript - 具有相同类的动态生成文本框的远程验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37406079/

相关文章:

javascript - Google map React 卡在 'loading map...' 中

javascript - 在 componentDidMount 中从一个 axios 获取数据到另一个 axios

php - 如何使用 mysql 浏览器(如 phpmyadmin)在 mysql 中设置外键?

php - 从 PHPDatabase : Message-like Algorithm 选择数据

javascript - 新代理不适用于 Chrome 中的功能

javascript - 返回真或返回假

php - Laravel 原始查询并包含模型关系

javascript - 删除点击元素所在的 Div

javascript - 如何在完成某些任务后下载文件

javascript - 更改已应用样式的 html 表格行颜色