Javascript 动态验证附加的文本框字段jQuery

Javascript 动态验证附加的文本框字段jQuery,javascript,jquery,validation,Javascript,Jquery,Validation,我有一个动态输入字段,在加号按钮后追加 这些字段对应的id是answer0、answer1、answer2等。这意味着单击按钮后,id将动态附加到文本字段。 现在我想验证这些字段。我的验证代码如下 function showValidation(response) { var respArray = JSON.parse(response.responseText).errors; for(var i=0;i<=(Object.keys(respArray).length);i++){

我有一个动态输入字段,在加号按钮后追加

这些字段对应的id是answer0、answer1、answer2等。这意味着单击按钮后,id将动态附加到文本字段。 现在我想验证这些字段。我的验证代码如下

function showValidation(response) {
var respArray = JSON.parse(response.responseText).errors;
for(var i=0;i<=(Object.keys(respArray).length);i++){
 var optionss= 'Enter Answers.';
 if($("#answer"+i).val()==''){
      $('#answer'+i+' + span').html('');
      $('#answer'+i).after('<span class="' + errTextboxClass + '" style="color:#e03b3b">' + optionss+ '</span>'); 
      $('#answer'+i).focus();
    }
}
}
功能验证(响应){
var respArray=JSON.parse(response.responseText).errors;

对于(var i=0;i如果字段是必需的,则应将其标记为必需,否则将验证每个字段

function showValidation(response) {
    var respArray = JSON.parse(response.responseText).errors;
    $('.form-group input.form-control').each(function(){
        if ($(this).val() == '') {
            $(this).next('span').html('');
            $(this).after('<span class="' + errTextboxClass + '" style="color:#e03b3b">' + optionss+ '</span>');
            $(this).focus();
        }
    });
}
功能验证(响应){
var respArray=JSON.parse(response.responseText).errors;
$('.form group input.form control')。每个(函数(){
if($(this.val()=''){
$(this.next('span').html(“”);
$(此)。在(“”+选项S+“”)之后;
$(this.focus();
}
});
}

由于我不知道如何以及在何处调用
showValidation()
,因此我无法进一步改进它。

如果字段是必需的,则应将其标记为必需的,否则应验证每个字段。在您的情况下,另一种验证方法可能如下所示

function showValidation(response) {
    var respArray = JSON.parse(response.responseText).errors;
    $('.form-group input.form-control').each(function(){
        if ($(this).val() == '') {
            $(this).next('span').html('');
            $(this).after('<span class="' + errTextboxClass + '" style="color:#e03b3b">' + optionss+ '</span>');
            $(this).focus();
        }
    });
}
功能验证(响应){
var respArray=JSON.parse(response.responseText).errors;
$('.form group input.form control')。每个(函数(){
if($(this.val()=''){
$(this.next('span').html(“”);
$(此)。在(“”+选项S+“”)之后;
$(this.focus();
}
});
}

由于我不知道如何以及在何处调用
showValidation()
,我无法进一步改进它。

AppendOption
函数中,设置
k=1
一旦到达第三个条目(选项2),这是一个无效选项。您应该检测它,但更好的是,在它执行时仍然使它对上下文敏感。我通过添加一个
答案项
类来检测我们有多少答案项,并使用该数字来代替

我将所有这些都包装在一个
中,这样我就有了一个地方来钩住事件处理程序(delegateTarget)

我不会在这里使用ID,而是使用类,但这不是问题的一部分,而是问题的原因

$('.options container')。在('click','addoption',函数(事件){
让k=$(event.delegateTarget).find('.answer item').length;
$(event.delegateTarget).append(“”);
});
功能验证(响应){
var respArray=JSON.parse(response.responseText).errors;

对于(var i=0;i在
AppendOption
函数中,您设置
k=1
一旦到达第三个条目(选项2),这是一个无效的选项。您应该检测它,但更好的是,在它执行时仍然使它对上下文敏感。我通过添加一个
答案项
类来检测我们有多少答案项,并使用该数字来代替

我将所有这些都包装在一个
中,这样我就有了一个地方来钩住事件处理程序(delegateTarget)

我不会在这里使用ID,而是使用类,但这不是问题的一部分,而是问题的原因

$('.options container')。在('click','addoption',函数(事件){
让k=$(event.delegateTarget).find('.answer item').length;
$(event.delegateTarget).append(“”);
});
功能验证(响应){
var respArray=JSON.parse(response.responseText).errors;

对于(var i=0;i我尝试在输入数组循环中显示错误消息,并得到了答案

    var result = document.getElementsByTagName("input");
    var optionss= 'Enter Answers.';
    for (var j = 0; j < result.length; j++) {
     if($("#answer"+j).val()==''){
      $('#answer'+j+' + span').html('');
      $('#answer'+j).after('<span class="' + errTextboxClass + '" style="color:#e03b3b">' + optionss+ '</span>'); 
      $('#answer'+j).focus();
    }
var result=document.getElementsByTagName(“输入”);
var options='输入答案';
对于(var j=0;j
我试图在输入数组循环中显示错误消息,我得到了答案

    var result = document.getElementsByTagName("input");
    var optionss= 'Enter Answers.';
    for (var j = 0; j < result.length; j++) {
     if($("#answer"+j).val()==''){
      $('#answer'+j+' + span').html('');
      $('#answer'+j).after('<span class="' + errTextboxClass + '" style="color:#e03b3b">' + optionss+ '</span>'); 
      $('#answer'+j).focus();
    }
var result=document.getElementsByTagName(“输入”);
var options='输入答案';
对于(var j=0;j
为什么不使用非id的选择器?在这种情况下,您可以轻松迭代每个元素。表单的html是什么样子的?您能解释一下吗。showValidation(response)你在哪里调用这个函数?为什么不使用一个不是id的选择器?在这种情况下,你可以轻松地迭代每个元素。你的表单html是什么样子的?你能解释一下吗?showValidation(response)你在哪里调用这个函数?谢谢你的回答:)。我已经在这里包含了我的答案。谢谢你的回答:)。我已在此处包含我的答案。谢谢你的答案:)。我已在此处包含我的答案。谢谢你的答案:)。我已在此处包含我的答案。这将在
input type=“button”
input type=“submit”上中断
也许?我会用一个类来更好地隔离他们是的,我遵循了你的答案,它起作用了:)接受了答案这将打破
input type=“button”
input type=“submit”
也许?我会用一个类来更好地隔离他们是的,我遵循了你的答案,它起作用了:)接受了答案