我有使用AJAX将测试/行添加到数据库的脚本
我添加了复选框(#main),我也想将它发送到数据库。
对于某些研究,检查与否,复选框总是向DB发送相同的值 那是为什么?
//##### send add record Ajax request to response.php #########
$("#FormSubmit").click(function (e) {
// e.preventDefault();
if($("#contentText").val()==='')
{
alert("Please enter some text!");
return false;
}
alert($("#main").val());
var myData = 'content_txt='+ $("#contentText").val() + "&main= " + $("#main").val(); //build a post data structure
jQuery.ajax({
type: "POST", // HTTP method POST or GET
url: "response.php", //Where to make Ajax calls
dataType:"text", // Data type, HTML, json etc.
data:myData, //Form variables
success:function(response){
$("#responds").append(response);
$("#contentText").val(''); //empty text field on successful
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
});
});
<div class="form_style">
<textarea name="content_txt" id="contentText" cols="45" rows="5"></textarea>
<input type="checkbox" name="main" id="main" />
<button id="FormSubmit">Add record</button>
</div>
答案 0 :(得分:0)
用于复选框元素.is(':checked')
代码示例:
$('#main').is(':checked');
答案 1 :(得分:0)
嗯它的价值总是一样的,不是吗?你显然不明白input[type=checkbox]
是如何运作的。
输入类型复选框有一个值集,并且该值始终相同(除非您当然通过javascript更改它)。 input[type=text]
和input[type=checkbox]
之间的区别在于,当提交父表单时,复选框不会发送它的值(同样也是一样)。
你正在做的是再次发送复选框的值,再次,它始终是相同的。
正确的行动方针是这样的:
var v = $("#main:checked").val();
只有选中复选框才会返回值。我想这就是你需要的。
答案 2 :(得分:0)
$("#main").val()
会为您提供复选框的值,无论是否选中该复选框,请尝试使用.serialize()
。
var myData = $("#contentText,#main").serialize(); //build a post data structure
答案 3 :(得分:0)
Some info on getting values from checkbox with jquery:
var myData = 'content_txt='+ $("#contentText").val() + "&main= " + $("#main").is(":checked"); //build a post data structure