Php Ajax-多重验证
我已经使用php设置了一些ajax代码来验证表单中的多个字段。代码工作起来很有魅力,但我想尽量减少使用javascript 正如您在下面的代码中看到的,我得到了getElements的“输入”。。。验证所有输入字段,然后获取验证。。。你知道;o Textarea是下面代码中的最后一行,之后的javascript与inpt相同 我正在使用php验证控制器中的输入、文本区域、选择列表、复选框等,但获取元素后的代码是完全相同的 所以我在想,我可能会制作一个切换用例,或者使用javascript循环元素,只编写一次重复的javascript 可以这样做吗Php Ajax-多重验证,php,javascript,ajax,validation,multiple-instances,Php,Javascript,Ajax,Validation,Multiple Instances,我已经使用php设置了一些ajax代码来验证表单中的多个字段。代码工作起来很有魅力,但我想尽量减少使用javascript 正如您在下面的代码中看到的,我得到了getElements的“输入”。。。验证所有输入字段,然后获取验证。。。你知道;o Textarea是下面代码中的最后一行,之后的javascript与inpt相同 我正在使用php验证控制器中的输入、文本区域、选择列表、复选框等,但获取元素后的代码是完全相同的 所以我在想,我可能会制作一个切换用例,或者使用javascript循环元素
window.addEvent('domready', function(){
$('container').getElements('input').addEvent('keyup', function(e){
//stop the input-tag event
e = new Event(e).stop();
//identify which item was activated
var querystring = this.title;
var value = this.value;
var myXHR = new XHR({
method: 'get',
onSuccess: function(e){
var myString = myXHR.response.text;
var myStringArray = myString.split("###RAWR###");
$(myStringArray[1]).innerHTML = '<em class="checking"> </em>';
setTimeout( ajax , 3500 );
function ajax(){
$(myStringArray[1]).innerHTML = '<em class="'+myStringArray[2]+'">'+myStringArray[0]+'</em>';
}
}
});
myXHR.send('index2.php?option=com_component&task=validate&value='+value, querystring);
});
$('container').getElements('textarea').addEvent('keyup', function(e){
您可以将标记名放入数组循环中,然后通过验证调用函数
window.addEvent('domready', function(){
var tagNames = ["input", "textarea", "select"];
for (var i = 0; i < tagNames.length; i++)
{
validate(tagNames[i]);
}
});
function validate(tag)
{
$('container').getElements(tag).addEvent('keyup', function(e){
//stop the input-tag event
e = new Event(e).stop();
//identify which item was activated
var querystring = this.title;
var value = this.value;
var myXHR = new XHR({
method: 'get',
onSuccess: function(e){
var myString = myXHR.response.text;
var myStringArray = myString.split("###RAWR###");
$(myStringArray[1]).innerHTML = '<em class="checking"> </em>';
setTimeout( ajax , 3500 );
function ajax(){
$(myStringArray[1]).innerHTML = '<em class="'+myStringArray[2]+'">'+myStringArray[0]+'</em>';
}
}
});
myXHR.send('index2.php?option=com_component&task=validate&value='+value, querystring);
});
}
看起来很有趣。所以我必须用一个名称标记来标识每个输入字段,比如or和for循环搜索名称标记?其他一切,html以及控制器验证都保持不变???我不是javascript专家…这段代码花了我30个小时来执行;oI更新了我的答案并从标记列表中删除了复选框。如果您对所有输入类型、文本区域和下拉框使用相同的验证,那么它应该可以工作。