我有以下表格:
<form action="xxx">
<label>
<input type="radio" name="dataType" value="newsite" checked> newsite
</label>
<label>
<input type="radio" name="dataType" value="newsiteAndOtherInfo"> newsiteAndOtherInfo
</label>
<div id="newsite">
<input name="site" value="1"/>
</div>
<div id="newsiteAndOtherInfo" style="display:none">
<input name="site" value="2"/>
<input name="OtherInfo" />
......
</input>
<input type="submit"/>
</form>
<script>
$('input[type="radio"]').click(function() {
if ($(this).attr("value") == "newsite") {
$("#newsiteAndOtherInfo").hide();
$("#newsite").show();
}
if ($(this).attr("value") == "newsiteAndOtherInfo") {
$("#newsite").hide();
$("#newsiteAndOtherInfo").show();
}
});
</script>
提交时,表单数据为:
网站:1,2
虽然我只希望将可见输入值传递给服务器。
我知道$.ajax
可以轻松完成。如
var site = $("[name=site]:visible").val();
var data = {"site":site};
$.ajax({
url:"xxx",
type: 'post',
data: data,
success: function(response) {
}
});
但如果我同步使用表单提交,则更改值不起作用。
$("form").submit(function() {
formdata(this);
return true;
});
});
function formdata(form) {
var site = $(form).find("[name=site]:hidden").val();
form.site.value = site; // not work
}
我想在提交之前必须有方法更改数据但却无法找到它。
[编辑]
由于我的问题不明确,请在此处添加一些补充。
实际上,两个div是两种表单数据,一些输入是相同的字段。