Php Ajax-多重验证

Php Ajax-多重验证,php,javascript,ajax,validation,multiple-instances,Php,Javascript,Ajax,Validation,Multiple Instances,我已经使用php设置了一些ajax代码来验证表单中的多个字段。代码工作起来很有魅力,但我想尽量减少使用javascript 正如您在下面的代码中看到的,我得到了getElements的“输入”。。。验证所有输入字段,然后获取验证。。。你知道;o Textarea是下面代码中的最后一行,之后的javascript与inpt相同 我正在使用php验证控制器中的输入、文本区域、选择列表、复选框等,但获取元素后的代码是完全相同的 所以我在想,我可能会制作一个切换用例,或者使用javascript循环元素

我已经使用php设置了一些ajax代码来验证表单中的多个字段。代码工作起来很有魅力,但我想尽量减少使用javascript

正如您在下面的代码中看到的,我得到了getElements的“输入”。。。验证所有输入字段,然后获取验证。。。你知道;o Textarea是下面代码中的最后一行,之后的javascript与inpt相同 我正在使用php验证控制器中的输入、文本区域、选择列表、复选框等,但获取元素后的代码是完全相同的

所以我在想,我可能会制作一个切换用例,或者使用javascript循环元素,只编写一次重复的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">&nbsp;</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">&nbsp;</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更新了我的答案并从标记列表中删除了复选框。如果您对所有输入类型、文本区域和下拉框使用相同的验证,那么它应该可以工作。