2017-11-18 176 views
0

我有一个发票表单,其中包含一个由3列组成的表格:kode_barang(ItemID),nama_barang(ItemName)和数量(数量)。假设它只有2行:如果从下拉菜单中选择任何选项

<form name="invoice" action="insert3.php" method="post"> 
<table id="theTable" border="1"> 
    <thead> 
     <tr> 
      <th> Kode Barang </th> 
      <th> Nama Barang </th> 
      <th> Qty </th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
     <td><select name="kode_barang[]" id="kode_barang0" required /> </td> 
     <td><input type="text" name="nama_barang[]" id="nama_barang0" required /></td> 
     <td><input type="text" name='qty[]' required /></td> 
     </tr> 
     <tr> 
     <td><select name="kode_barang[]" id="kode_barang1" /> </td> 
     <td><input type="text" name="nama_barang[]" id="nama_barang1" /></td> 
     <td><input type="text" name='qty[]' /></td> 
     </tr> 
    </tbody> 
</table> 

ItemID是一个下拉菜单,它的选项可以从另一个表中动态填充。第一行中的所有字段都是必需的,因为如果它是空的,它将不是新的发票。

但我遇到了第二行的问题。如果用户选择一个项目,那么他们可以提交表格,如果只填写ItemNameQty。我搜索了一下,发现了几个类似的问题,但是没有一个答案适用于我,或者我可能只是不理解它。这是我的非工作尝试:

$(document).ready(function() { 

var $code = $('#kode_barang1'), 
    $qty = $('#qty1'), 
    $price = $('#harga_beli1'); 

var validator = $('#faktur').validate({ 
    debug: true, 
    rules: { 
     kode_barang[]: { 
      required: function (element) { 
       return $qty.val().length > 0 || $price.val().length > 0; 
      } 
     }, 
     qty[]: { 
      required: function (element) { 
       return $code.val().length > 0 || $price.val().length > 0; 
      } 
     }, 
     harga_beli[]: { 
      required: function (element) { 
       return $code.val().length > 0 || $qty.val().length > 0; 
      }, 
      /* verify if confirmation is ok */ 
      equalTo: $np 
     } 
    }, 
    messages: {} 
    }); 
}); 

有没有人请帮助我呢?谢谢。

+0

与他们特殊字符的对象属性名必须用引号引起来 – charlietfl

+0

@charlietfl仍然没有运气:( – David

+0

所以,要考虑一个简单的例子,你的问题是:如果**下拉是“是”,你需要另一个文本字段是强制性的,否则不是。**我是对吗? –

回答

1

这是你想要的,但有两个简单的领域。让我知道你是否需要帮助来理解任何事情。

<script type="text/javascript"> 
    function isMandatory(){ 
     var dropDownElement = document.getElementById('dropdown'); 
     if(!dropDownElement){ // check if dropdown element exists 
      return false; 
     } 
     if(dropDownElement.value == ""){ // check if value is selected in dropdown 
      return false; 
     } 
     return true; 
    } 

    function submitForm(){ 
     var fieldElement = document.getElementById('someField'); 
     if(!fieldElement){ // check if textfield element exists 
      return; 
     } 
     if(isMandatory() && fieldElement.value == ""){ 
      alert("Field is mandatory!"); // or show message in a div 
     } 
     else{ 
      // do something 
     } 
    } 
</script> 
<div> 
    <select id="dropdown"> 
     <option value="">--select--</option> 
     <option value="item-1">item-1</option> 
     <option value="item-2">item-2</option> 
    </select> 
    <input id="someField" type="text" /> 
    <input type="button" value="submit" onclick="submitForm();" /> 
</div> 
+0

完美的工作。谢谢。 – David

相关问题