如果从下拉菜单中选择任何选项
问题描述:
我有一个发票表单,其中包含一个由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是一个下拉菜单,它的选项可以从另一个表中动态填充。第一行中的所有字段都是必需的,因为如果它是空的,它将不是新的发票。
但我遇到了第二行的问题。如果用户选择一个项目,那么他们可以提交表格,如果只填写ItemName
和Qty
。我搜索了一下,发现了几个类似的问题,但是没有一个答案适用于我,或者我可能只是不理解它。这是我的非工作尝试:
$(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: {}
});
});
有没有人请帮助我呢?谢谢。
答
这是你想要的,但有两个简单的领域。让我知道你是否需要帮助来理解任何事情。
<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
与他们特殊字符的对象属性名必须用引号引起来 – charlietfl
@charlietfl仍然没有运气:( – David
所以,要考虑一个简单的例子,你的问题是:如果**下拉是“是”,你需要另一个文本字段是强制性的,否则不是。**我是对吗? –