我的动态生成文本框有问题。 我希望所有文本框都有必需的和远程验证。
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
是返回记录已存在与否的函数。
这很好。
我完全按照我的意愿得到了真实和错误但是我的jQuery验证也不断给出错误。 如果我输入 true 值,它总是会出现错误并发出验证错误,那么它也会出错。
答案 0 :(得分:1)
我在表单中尝试了完全相同的示例,因为我没有getValFromTbl(),我尝试使用true来代替它以及检查名称字符串。工作得很好..看看代码是否有帮助..
html page
<!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;
}
答案 1 :(得分:0)
看看你的some_ajax.php是否可以像你这样重写。
$valid = 'true'; // Set allowed by default
if(isset($_REQUEST['name'])) {
$valFromTbl = getValFromTbl('name',$_REQUEST['tblNM'],'name="'.addContent($_REQUEST['name']).'"'.$fld);
if(!empty($valFromTbl)) // found value in table - change validity
{
$valid = 'false'; // Not Allowed
}
echo $valid;
}