我有这个代码,当用户点击将重新上传文件的按钮时,它将获取所选的值。我尝试使用window.name,但数据仍然丢失,我可能会以错误的角度进行此操作,但我希望你能帮助我。文件再次上传后,有没有办法让myVal不被清空?上传和选择值属于不同的形式,我不能使用数组,因为这意味着我应该提交选择值所在的表单。
谢谢
function testcsv()
{
var myVal = $('#csv_map').find('.sqlopt').map(function() {
return $(this).val();
}).get().join(',');
var select_val = myVal.split(',');
alert(select_val);
window.name = myVal;
$('#csvtest').click(
function()
{
$('#csv_form').submit();
alert(window.name);
}
);
// $('#sqlbox_1').val(test[0]);
}
答案 0 :(得分:0)
在上传表单中放入一个隐藏字段,并在表单提交之前(即用户上传文件时)更新它。原型:
<!-- Upload form -->
<form id="csv_form">
<!-- form definition omitted (fields, labels, etc) ... -->
<!-- and this is our hidden field -->
<input type="hidden" name="select_val" />
</form>
<!-- Form with SELECTs -->
<form id="csv_map">
<select class="sqlopt"> ... </select>
<select class="sqlopt"> ... </select>
<!-- rest of the form definition omitted ... -->
</form>
<!-- Put this JS somewhere -->
<script>
$(document).ready(function() {
$('#csv_form').submit(function() {
var myVal = $('#csv_map').find('.sqlopt').map(function() {
return $(this).val();
}).get().join(',');
// Update value of hidden field
$(this).find('input[name="select_val"]').val(myVal); // will contain comma-separated string of values
});
});
</script>