我有一个带有两个输入的表单(后来有更多输入)。一个输入是文本输入,第二个是复选框。我想用$ .ajax发送这两个输入。
我创建了一个带有一个输入的对象formData
。如果复选框处于活动状态,我想将第二个附加到Object。
不幸的是,由于格式错误,我无法传递Object。
我的代码:
<form id="myForm">
<input type="text" name="search_text" id="search_text" placeholder="Search by a name">
<input type="checkbox" name="exact" value="Exact">Exact
</form>
<br>
<div id="result"></div>
<script type="text/javascript">
$(document).ready(function(){
$('#myForm').on('change', ':checkbox', function(){
if($(this).is(':checked')) {
console.log($(this).val() + ' is now checked');
}
else {
console.log($(this).val() + ' is now unchecked');
}
});
var formData = {'qry':search};
$('#search_text').on('keyup', function(e){
e.preventDefault();
var search = $(this).val();
$('#result').html('');
$.ajax({
url:"fetch.php",
method: "POST",
data: formData,
dataType: "text",
success:function(data) {
$('#result').html(data);
}
});
});
});
</script>
答案 0 :(得分:0)
您需要序列化表单数据,然后根据需要添加更多数据:
var data = $('#myForm').serializeArray();
data.push({name: 'sample', value: "something_more"});
你的ajax应该是这样的:
var data = $('#myForm').serializeArray();
data.push({name: 'sample', value: "something_more"});
$.ajax({
url:"fetch.php",
method: "POST",
data: data,
dataType: "text",
processData: false,
success:function(data) {
$('#result').html(data);
}
});