Php 使用Javascript从表单外部捕获值
全文载於 我在表单外部设置了以下复选框:Php 使用Javascript从表单外部捕获值,php,javascript,forms,variables,Php,Javascript,Forms,Variables,全文载於 我在表单外部设置了以下复选框: <div class='span5' style='margin-left:0px !important;'> <label for='model0'> <input type="checkbox" name="model0x" id="model0x" value="Accord" style='margin-top:-5px !important;'> Accord</label>
<div class='span5' style='margin-left:0px !important;'>
<label for='model0'>
<input type="checkbox" name="model0x" id="model0x"
value="Accord" style='margin-top:-5px !important;'> Accord</label>
</div>
一致
我在复选框和表单之间有一个javascript:
<script>
if($("#model0x").is(':checked')){
$("#model0_is_checked").val($("#model0x").val());
}else{
$("#model0_is_checked").val("Not Checked");
}
</script>
如果($(“#model0x”)。是(':checked')){
$(“#model0_已检查”).val($(“#model0x”).val();
}否则{
$(“#模型0_已检查”).val(“未检查”);
}
最后,我有一个隐藏的输入,当项目被选中或未选中时,在表单中调用该值:
<form method="post" class="form-horizontal" id="final_form" action="send_mail.php">
<input type="hidden" id="model0_is_checked" name="model0_is_checked">
MORE FORM STUFF AND SUBMIT BUTTON
</form>
更多表单内容和提交按钮
无论我在send_mail.php中得到什么都没有价值……我做错了什么?当页面(或者更准确地说,
标记)加载时,Javascript运行一次。您必须在提交表单时使其运行:
<script type="text/javascript">
function updateHidden() { // Find a better name ;)
if($("#model0x").is(':checked'))
$("#model0_is_checked").val($("#model0x").val());
else
$("#model0_is_checked").val("Not Checked");
}
$(document).ready(function() { $('#final_form').submit(updateHidden); });
</script>
函数updateHidden(){//查找更好的名称;)
如果($(“#model0x”)。是(':checked'))
$(“#model0_已检查”).val($(“#model0x”).val();
其他的
$(“#模型0_已检查”).val(“未检查”);
}
$(document).ready(function(){$('#final_form').submit(updateHidden);});
注意:未测试代码将函数绑定到表单提交
<script>
$('#final_form').on('submit',function(){
if($("#model0x").is(':checked')){
$("#model0_is_checked").val($("#model0x").val()); }
else { $("#model0_is_checked").val("Not Checked");}
});
</script>
$('final#form')。在('submit',function()上{
如果($(“#model0x”)。是(':checked')){
$(“#model0_已检查”).val($(#model0x”).val();}
else{$(“#model0_已检查”).val(“未检查”)}
});
jsidle示例如何调用
if()
?在页面加载时,它看起来将返回false,除非您在表单提交或其他事件中重新调用它,否则它将不会被重新调用。您可以在不希望在其坏表单之外输入的位置看到代码。此外,选中了model0\u,但它还不存在。您正在尝试设置浏览器尚未渲染的对象。尝试将javascript移动到页面底部,以便在页面呈现后运行。是否需要更改表单中隐藏的输入?
$('#model0x').click(function(){
var self=this;
$("#model0_is_checked").val($(self).is(':checked')?self.value:'Not Checked');
// do something
});
// or use submit ()