0

私はテーブルに動的なテーブル行を追加するフォームに取り組んでいます。いくつかの検証を行いましたが、私にとってはうまくいきましたが、今では動的に追加されるテキストボックスを検証したいという新しい課題に直面しています。行ですが、問題は、そのテキストボックスの前にある他のテキストボックスが空ではなく、ここで立ち往生しているときに、そのテキストボックスを検証したいだけです。そのIDに入るすべての要素に使用できること.each()はわかっていますが、その検証の行からすべてのテキストボックスをバインドする方法がわかりません. validate") は空ではありません。すべてのテキスト ボックスが空でない場合、エラーは発生しません。

検証用のコードは次のとおりです。

if($('[id^="invoice_"]').val() =="" || $('[id^="invoice_"]').val() ==null || $('[id^="invoice_"]').val() ==0){
     alert("Invoice Number Cannot Be Empty");
     $("#savetodb").attr("disabled", "disabled");
     console.log("1");
     return false;
}else{
  console.log("2");
     $("#savetodb").removeAttr("disabled");     
4

2 に答える 2

1

入力ごとにセレクターを追加する必要はありません...ループを使用してみてください

 $.each($('[id^="invoice_"]'),function(i,v){
   if(this.value=="" || this.value==null || this.value=="0"){
      alert("Invoice Number Cannot Be Empty");
      $("#savetodb").prop("disabled", true);
      console.log("1");
      return false;
   }else{
      console.log("2");
       $("#savetodb").prop("disabled", false);
   } 

はい、これは送信関数内にある必要があり、すべての入力が追加された後に呼び出す必要があります。prop()jquery の最新バージョン (つまり 1.6+)を使用している場合に使用することをお勧めします。

于 2013-10-24T09:47:20.333 に答える
0

これを試してください:あなたに役立つかもしれません...

コード側 (.cs ページ) :

        string str = "";
        str = "<table>";
        for (int i = 1; i <= 5; i++)
        {
            str = str + "<tr><Label id='lbl" + i.ToString() + "' runat='server'>Lable " + i.ToString() + "</Label>";
            str = str + "<input type='Text' id='txt" + i.ToString() + "' onblur='checkValidation(this);'/></tr><br /><br />";
        }
        str = str + "</table>";
        Response.Write(str);

デザイン側 (.aspx ページ) :

<script src="../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script type="text/javascript" language="javascript">
        function checkValidation(ctrl) {
            var returnNow = false;
            var i = 0;
            $('input[type=text]').each(function (index) {
                if (ctrl.id == this.id) {
                    if ($(this).val() == '' || $(this).val() == null) {
                        alert('enter some val for Label ' + (index + 1).toString());
                    }
                    return false;
                }
                else {
                    if ($(this).val() == '' || $(this).val() == null) {
                        alert('Enter some value for Label ' + (index + 1).toString());
                        return false;
                    }
                    else {
                        returnNow = true;
                    }
                }
            });
        }
</script>
于 2013-10-24T11:04:38.067 に答える