0

フォームhtml

<form action="" method="post" name="add_new_report" id="add_new_report" enctype="multipart/form-data" onsubmit="return AddNewReport(this)">
   <div class="field">
              <div class="field_180">Cheque</div>
              <div class="field_30">:</div>
              <div class="field_220">
                <input type="text" name="cheque" id="cheque" onChange="updatesum()" />
              </div>
              <div class="clear"></div>
            </div>
            <div class="field">
              <div class="field_180">Cash</div>
              <div class="field_30">:</div>
              <div class="field_220">
                <input type="text" name="cash" id="cash" onChange="updatesum()" />
              </div>
              <div class="clear"></div>
            </div>

<div class="field">
              <div class="field_210">&nbsp;</div>
              <div class="field_222">
                <input type="submit" id="Submit" name="Submit" value="Submit"  />
              </div>
              <div class="clear"></div>
            </div>
          </form>

このフォームでは、ユーザーは小切手または現金のいずれかを入力する必要があります フィールド どうしてそれが可能ですか? どちらも必須です。

4

2 に答える 2

0

この関数をヘッダーに追加するだけです。

<script>
    function validateForm()
    {
    var x=document.forms["add_new_report"]["cheque"].value;
    var y=document.forms["add_new_report"]["cash"].value;
    if ((x==null || x=="") && (y==null || y==""))
      {
      alert("At least one entry should be filled");
      return false;
      }
     else 
      return true
     }
</script>

次のフィールドを変更します。

 onsubmit="if(validateForm()) return AddNewReport(this)"

AddNewReport を validateForm 関数に含めて、validate(this) 関数のみを返すこともできます。

于 2013-01-08T19:43:22.697 に答える
0

IE <9 をまったく気にしない場合は、次のようなものを使用できます。(それ以外の場合は、IE で動作しないコードを動作するコードに置き換えます)

function oneShouldHaveData(ids) {
    var elements = [];

    //convert ids to elements (map no IE<9)
    elements = ids.map(function (id) {
        return document.querySelector('#' + id);
    });

    //returns true if any element matches expression (some no IE <9)
    return elements.some(function (element) {
        //could be validation for anything (greater 0 etc.)  
        return !!element.value;
    });
}

//just submit setup :)
document.querySelector('#add_new_report').addEventListener('submit', function () {
    console.log(oneShouldHaveData(['cheque', 'cash']));
});

http://jsfiddle.net/LXprX/1/

于 2013-01-08T19:35:11.660 に答える