我正在通过AJAX帖子调用运行表单,但我的复选框上的值保持不变,无论我在处理邮件脚本时是否选中或取消选中它。
我想在取消选中时更改值。因此,取消选中该复选框会将值更改为“no”等。
这是我的代码,我做错了什么?
<input type="checkbox" name="newsletter" id="newsletter" checked="checked" value="1"/>
Ajax Call在这里: http://pastebin.com/gFGbWZ1D
Php邮件脚本: http://pastebin.com/d6hCVmzQ
干杯, 麦克
答案 0 :(得分:1)
$('#newsletter').click(function(){
if($(this).val() == 1) {
$(this).val('no');
// I'd recommend doing it this way for consistency sake
$(this).val(0);
}
});
答案 1 :(得分:1)
复选框的值始终为1,无论是否在使用jQuery查看其值时检查它。
您需要做的是查看是否选中了复选框:
var newsletter = $("#newsletter").is(":checked")?1:0;
答案 2 :(得分:1)
您必须检查PHP Mail脚本中复选框的值,并稍微区别对待它。
我的方法是这样做:
if(isset($_POST['newsletter'])&&$_POST['newsletter']==1) $newsletter="yes"; else $newsletter="no";
在这种情况下,您使用PHP来确定值,因为复选框只能有一个值!如果选中它,则该值将是html值的值,但在我的示例中,我们仅使用if语句中的HTML字段的值:
if(isset($ _ POST ['newsletter']))//检查表单提交中是否存在此元素,以及 $ _POST ['newsletter'] == 1 //检查复选框是否已选中。如果您回显$ _POST ['newsletter']的值,它将始终为1,因此您需要调整邮件脚本的逻辑,以便使用“if checked,then yes; else no”类型的样式事情。