验证动态添加字段 [英] Validate dynamically added fields

查看:174
本文介绍了验证动态添加字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在点击按钮添加一个表行jQuery的:

  $(#add_row)。点击(函数(){
        zeile ++;
        $(#ArtikelTabelle> TBODY)。追加('< TR ID =Reihe街'+ zeile +'>'+
        '< TD ROWSPAN =2>< B>' +(zeile + 1)+'&下/ B个;&下; / TD>' +
        '< TD><输入类=表格控ID =ccTabelle_'+ zeile +'__ccArtikelNrNAME =ccTabelle ['+ zeile +'] .ccArtikelNr类型=文本/>< / TD>' +
        '< TD><输入类=表格控ID =ccTabelle_'+ zeile +'__ccWarentarifNrNAME =ccTabelle ['+ zeile +'] .ccWarentarifNr类型=文本/>< / TD>' +
        '< TD><输入类=表格控数据-VAL =真正的数据-VAL-数=达斯费尔德和放大器; QUOT; Anzahl&安培; QUOT;弄乱EINE Zahl盛。数据-VAL-所需=达斯费尔德和放大器; QUOT; Anzahl&安培; QUOT; IST erforderlich。 ID =ccTabelle_'+ zeile +'__ccAnzahlNAME =ccTabelle ['+ zeile +'] .ccAnzahl类型=文本/>< / TD>' +
        '< TD><输入类=表格控数据-VAL =真正的数据-VAL-数=达斯费尔德和放大器; QUOT; Einzel preIS&放大器; QUOT;弄乱EINE Zahl盛。数据-VAL-所需=达斯费尔德和放大器; QUOT; Einzel preIS&放大器; QUOT; IST erforderlich。 ID =ccTabelle_'+ zeile +'__ccEinzel preISNAME =ccTabelle ['+ zeile +'] .ccEinzel preIS类型=文本/>< / TD>' +
        '< TD><输入类=表格控数据-VAL =真正的数据-VAL-数=达斯费尔德和放大器; QUOT; Gesamt preIS&放大器; QUOT;弄乱EINE Zahl盛。数据-VAL-所需=达斯费尔德和放大器; QUOT; Gesamt preIS&放大器; QUOT; IST erforderlich。 ID =ccTabelle_'+ zeile +'__ccGesamt preISNAME =ccTabelle ['+ zeile +'] .ccGesamt preIS类型=文本/>< / TD>' +
        '< TD><输入类=表格控数据-VAL =真正的数据-VAL-数=达斯费尔德和放大器; QUOT; Anzahl Pakete&放大器; QUOT;弄乱EINE Zahl盛。数据-VAL-所需=达斯费尔德和放大器; QUOT; Anzahl Pakete&放大器; QUOT; IST erforderlich。 ID =ccTabelle_'+ zeile +'__ccAnzahlPaketeNAME =ccTabelle ['+ zeile +'] .ccAnzahlPakete类型=文本/>< / TD>' +
        '< TD><输入类=复选框内联数据-VAL =真正的数据-VAL-所需=达斯费尔德和放大器; QUOT; Fertig verpackt&放大器; QUOT; IST erforderlich。 ID =ccTabelle_'+ zeile +'__ccFertigVerpacktNAME =ccTabelle ['+ zeile +'] .ccFertigVerpackt类型=复选框/><输入名称=ccTabelle ['+ zeile +'] .ccFertigVerpackt类型=隐藏/>< / TD>' +
        '&所述; TD行跨度=2>&下;类别=BTN BTN-默认delete_row数据的rowid ='+ zeile +> ARTIKELlöschen&下; / A>&下; / TD>' +
    '< / TR>' +
    '< TR ID =TEXT'+ zeile +'>' +
        '&所述; TD列跨度=3> < TextArea类=的形式控制输入-MDID =ccTabelle_'+ zeile +'__ccInhaltsbeschreibungNAME =ccTabelle ['+ zeile +'] .ccInhaltsbeschreibung占位符=Inhaltsbeschreibung>< / textarea的> < / TD>' +
        '< TD合并单元格=4> < TextArea类=的形式控制输入-MDID =ccTabelle_'+ zeile +'__ccBemerkungInhaltNAME =ccTabelle ['+ zeile +'] .ccBemerkungInhalt占位符=Bemerkungen>< / textarea的> < / TD>' +
    '< / TR>');        aktualisiereZeilennummer();    });

我也用这个内容最初创建行。

但在点击提交按钮,我想,如果他们充满与否的亮点这些领域,以验证这些字段。

我试着用 $(#表)验证(); ,但我真的不知道如何使用它,它不工作<。 / p>

另外,在我的模型验证失败:

 公共类InhaltModel
{
    // Inhalt
    [需要]
    [显示(名称=产品编号)]
    公共字符串ccArtikelNr {搞定;组; }
    [需要]
    [显示(NAME =Warentarif-NR)]
    公共字符串ccWarentarifNr {搞定;组; }
}

如果我用剃刀添加一行它的工作原理,但没有使用jQuery,但我需要它的动态,这样,我想我可以添加任意多行。

谁能告诉我如何验证我的领域?


解决方案

您需要解析格式来进行验证,以添加动态内容为该内容后,再次

  $('形式')的数据('验证',NULL);
$ .validator.unobtrusive.parse($('形式'));

I'm adding a table row with jQuery on button click:

$("#add_row").click(function () {
        zeile++;
        $("#ArtikelTabelle > tbody").append('<tr id="reihe' + zeile + '">' +
        '<td rowspan="2"><b>' + (zeile + 1) + '</b></td>' +
        '<td><input class="form-control" id="ccTabelle_' + zeile + '__ccArtikelNr" name="ccTabelle[' + zeile + '].ccArtikelNr" type="text"  /></td>' +
        '<td><input class="form-control" id="ccTabelle_' + zeile + '__ccWarentarifNr" name="ccTabelle[' + zeile + '].ccWarentarifNr" type="text" /></td>' +
        '<td><input class="form-control" data-val="true" data-val-number="Das Feld &quot;Anzahl&quot; muss eine Zahl sein." data-val-required="Das Feld &quot;Anzahl&quot; ist erforderlich." id="ccTabelle_' + zeile + '__ccAnzahl" name="ccTabelle[' + zeile + '].ccAnzahl" type="text" /></td>' +
        '<td><input class="form-control" data-val="true" data-val-number="Das Feld &quot;Einzelpreis&quot; muss eine Zahl sein." data-val-required="Das Feld &quot;Einzelpreis&quot; ist erforderlich." id="ccTabelle_' + zeile + '__ccEinzelpreis" name="ccTabelle[' + zeile + '].ccEinzelpreis" type="text" /></td>' +
        '<td><input class="form-control" data-val="true" data-val-number="Das Feld &quot;Gesamtpreis&quot; muss eine Zahl sein." data-val-required="Das Feld &quot;Gesamtpreis&quot; ist erforderlich." id="ccTabelle_' + zeile + '__ccGesamtpreis" name="ccTabelle[' + zeile + '].ccGesamtpreis" type="text" /></td>' +
        '<td><input class="form-control" data-val="true" data-val-number="Das Feld &quot;Anzahl Pakete&quot; muss eine Zahl sein." data-val-required="Das Feld &quot;Anzahl Pakete&quot; ist erforderlich." id="ccTabelle_' + zeile + '__ccAnzahlPakete" name="ccTabelle[' + zeile + '].ccAnzahlPakete" type="text" /></td>' +
        '<td><input class="checkbox-inline" data-val="true" data-val-required="Das Feld &quot;Fertig verpackt?&quot; ist erforderlich." id="ccTabelle_' + zeile + '__ccFertigVerpackt" name="ccTabelle[' + zeile + '].ccFertigVerpackt" type="checkbox" /><input name="ccTabelle[' + zeile + '].ccFertigVerpackt" type="hidden" /></td>' +
        '<td rowspan="2"><a class="btn btn-default delete_row" data-rowid="' + zeile + '">Artikel löschen</a></td>' +
    '</tr>' +
    '<tr id="text' + zeile + '">' +
        '<td colspan="3"> <textarea class="form-control input-md" id="ccTabelle_' + zeile + '__ccInhaltsbeschreibung" name="ccTabelle[' + zeile + '].ccInhaltsbeschreibung" placeholder="Inhaltsbeschreibung"></textarea> </td>' +
        '<td colspan="4"> <textarea class="form-control input-md" id="ccTabelle_' + zeile + '__ccBemerkungInhalt" name="ccTabelle[' + zeile + '].ccBemerkungInhalt" placeholder="Bemerkungen"></textarea> </td>' +
    '</tr>');

        aktualisiereZeilennummer();

    });

I also use this content to initially create a row.

But on clicking button submit I want to validate these fields if they are filled or not an highlight those fields.

I tried using $("#form").validate(); but I don't really know how to use it and it didn't work.

Also the validation in my model failed:

    public class InhaltModel
{
    //Inhalt
    [Required]
    [Display(Name = "Artikelnummer")]
    public string ccArtikelNr { get; set; }
    [Required]
    [Display(Name = "Warentarif-Nr")]
    public string ccWarentarifNr { get; set; }
}

If I use Razor to add a row it works but not with jQuery, but i need it dynamic so that I can add as many rows as I want to.

Can anyone tell me how to validate my fields ?

解决方案

You need to parse the form again after adding dynamic content in order for that content to be validated

$('form').data('validator', null);
$.validator.unobtrusive.parse($('form'));

这篇关于验证动态添加字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆