带有自适应表选择器的Jquery表单
Jquery forms with adaptive table from selector
我需要你的帮助。试图建立形式在php + jquery
,并有麻烦的一些功能。
例如,我有这样的代码:
<form action="" method="post" id="multiform">
<!-- Product selector -->
<table class="multi" id="MultiRow">
<tr><td>
<select name="store[product][]" required>
<option value="" selected="selected">-Product-</option>
<option value="430">OCTA</option>
<option value="440">KASKO</option>
<option value="19041">TRAVEL</option>
<option value="19063">HOUSEHOLD</option>
</select>
</td>
<!-- /Product selector -->
</table>
<input type="submit" value="ok">
怎么做呢,如果选择值是430或440,那么在右侧插入s
<td><input type="text" id="motor[]" name="multiarray[vehicle_type][]"></td>
<td><input type="text" id="deadline[]" name="multiarray[end_date][]"></td>
<td><a class="del" href="#">DELETE BUTTON</a></td>
如果所选值为19041或19063,则插入
<td><input type="text" id="location[]" name="multiarray[travel_location][]"></td>
<td><a class="del" href="#">DELETE BUTTON</a></td>
我需要也将有+添加button
和-删除button
,我写:
<a class="del" href="#">DELETE BUTTON</a>
但是对于日期拾取器功能,我需要输入的id是唯一的,例如:id="location1",在接下来添加的行id="location2"。
JsFiddle
$("#productselect").change(function(){
var select = document.getElementById("productselect");
var selecedproduct = select.options[select.selectedIndex].value;
$("tr[id^='forselect']").remove();
if(selecedproduct==430 || selecedproduct==440 )
{
var html ='<tr id="forselect"><td><input type="text" id="motor[]" name="multiarray[vehicle_type][]"></td>';
html +='<td><input type="text" id="deadline[]" name="multiarray[end_date][]"></td>';
html +='<td><a class="del" OnClick="removetags();return false;" href="#">DELETE BUTTON</a></td></tr>';
html +='<tr id="forselect"><td><a href="#" OnClick="adddatepicker();return false;">add datepicker </a> </td></tr>';
$("#MultiRow").append(html);
}
else if(selecedproduct==19041 || selecedproduct==19063 )
{
var html ='<tr id="forselect"><td><input type="text" id="location[]" name="multiarray[travel_location][]"></td>';
html +=' <td><a class="del" OnClick="removetags();return false;" href="#">DELETE BUTTON</a></td></tr>';
html +='<tr id="forselect"><td><a href="#" OnClick="adddatepicker();return false;">add datepicker </a> </td></tr>';
$("#MultiRow").append(html);
}
});
deldatepicker = function deldatepicker(id)
{
$("#remove"+id).remove();
}
adddatepicker = function adddatepicker()
{
var N = $("input[id^='location']").length;N++;
var html ='<tr id="remove'+N+'"><td><input type="text"id="location'+N+'" placeholder="date"></td><td><button OnClick="deldatepicker('+N+')">delete datepicker </button> </td></tr>';
$("#MultiRow").append(html);
$("#location"+N).datepicker();
}
removetags = function removetags()
{
$("tr[id^='forselect']").remove();
}
对你的工作有帮助。
在这里。因为您需要id是唯一的,所以我使用了Date.now()和object.now.getUTCMilliseconds()。这将确保当您删除并重新插入具有相同rowIndex的另一行时,它不会崩溃。那么剩下的就微不足道了!
jQuery(document).ready(function(){
jQuery('select').on('change', function(e){
var tr = jQuery(this).closest('tr').get(0);
var cell = tr.insertCell(1);
var now = Date.now();
switch(jQuery('option:selected', this).val()){
case '430':
case '440':
cell.innerHTML = "<td><input type='text' id='motor[]' name='multiarray[vehicle_type][]'></td><td><input type='text' id='deadline[]' name='multiarray[end_date][]'></td><td><a class='del' href='#'>DELETE BUTTON</a></td><td><a class='del' href='#'>DELETE BUTTON</a></td>";
break;
cell.innerHTMl = "<td><input type='text' id='location"+now.getUTCMilliseconds()+"[]' name='multiarray[travel_location][]'></td><td><a class='del' href='#'>DELETE BUTTON</a></td><td><a class='del' href='#'>DELETE BUTTON</a></td>";
case '19041':
case '19063':
break;
}
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<form action="" method="post" id="multiform">
<!-- Product selector -->
<table class="multi" id="MultiRow">
<tr><td>
<select name="store[product][]" required>
<option value="" selected="selected">-Product-</option>
<option value="430">OCTA</option>
<option value="440">KASKO</option>
<option value="19041">TRAVEL</option>
<option value="19063">HOUSEHOLD</option>
</select>
</td>
<!-- /Product selector -->
</table>
<input type="submit" value="ok">
相关文章:
- jQuery表单添加不适用于下拉列表
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- Ajax在JQuery表单插件中不起作用
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- jQuery表单,存在检查
- setTimeOut AFTER jQuery表单提交
- jquery表单验证复选框错误显示
- jQuery表单验证(如果==“执行此操作”)仅适用于第一次输入
- jquery表单提交无法使用多个输入(IE和Firefox)
- Jquery表单提交仍在刷新
- 如何触发我的 jquery 表单提交
- jQuery 表单插件:XMLHttpRequest 无法加载 http://www...没有“访问控制允许来源”
- jQuery表单验证和提交问题
- jquery表单和图像提交
- jQuery表单和Json问题
- Jquery表单插件未显示成功功能
- JavaScript/JQuery表单验证运行两次
- jQuery表单在就绪/加载时不起作用
- 停止jQuery表单验证重置由其他JavaScript填充的typeahead.js输入字段
- jQuery表单验证器:需要提交两次