Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Javascript从表单外部捕获值_Php_Javascript_Forms_Variables - Fatal编程技术网

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 ()