Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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
Javascript 如何区分“选择更改”和“提交”按钮何时提交表单_Javascript_Php_Html_Forms - Fatal编程技术网

Javascript 如何区分“选择更改”和“提交”按钮何时提交表单

Javascript 如何区分“选择更改”和“提交”按钮何时提交表单,javascript,php,html,forms,Javascript,Php,Html,Forms,我需要帮助确定何时通过onChange事件提交我的表单以进行选择,而不是用户单击提交按钮 使事情复杂化的是,我需要能够识别PHP中的差异 示例HTML: <form name='editdata' method='post' action='/editpage/recordnumber'> <select name='select1' onchange='this.form.submit()'><options...></select> <

我需要帮助确定何时通过onChange事件提交我的表单以进行选择,而不是用户单击提交按钮

使事情复杂化的是,我需要能够识别PHP中的差异

示例HTML:

<form name='editdata' method='post' action='/editpage/recordnumber'>
<select name='select1' onchange='this.form.submit()'><options...></select> 
<select name='select2' onchange='this.form.submit()'><options...></select>
<select name='select3' onchange='this.form.submit()'><options...></select> 
<input type='submit' value='Submit' />
</form>

最后,我只需要使用PHP来识别表单是通过onChange事件提交还是通过按下Submit按钮提交

到目前为止,我发现我可以将我的提交按钮命名为“提交”。这将设置
$\u POST['submit']
,从而告诉我用户单击了按钮。但是,当我将name属性添加到submit按钮时,我的onChange事件this.form.submit()会停止运行,该事件应用于我的几个选择


如果我可以使用一种或另一种方法在提交URL的末尾添加某种查询字符串,我认为这将完成工作。

您可以设置一个隐藏字段,该字段将由事件更新:

<form name='editdata' method='post' action='/editpage/recordnumber'>
<input type="hidden" name="submitted_on_change" value="0">
<select name='select1' onchange='form_submit()'><options...></select> 
<select name='select2' onchange='form_submit()'><options...></select>
<select name='select3' onchange='form_submit()'><options...></select> 
<input type='submit' value='Submit' />
</form>

<script>
var form_submit = function() {
   // update the hidden field to 1
   // then submit the form
}
</script>

var form_submit=函数(){
//将隐藏字段更新为1
//然后提交表格
}

您可以设置一个隐藏字段,该字段由事件更新:

<form name='editdata' method='post' action='/editpage/recordnumber'>
<input type="hidden" name="submitted_on_change" value="0">
<select name='select1' onchange='form_submit()'><options...></select> 
<select name='select2' onchange='form_submit()'><options...></select>
<select name='select3' onchange='form_submit()'><options...></select> 
<input type='submit' value='Submit' />
</form>

<script>
var form_submit = function() {
   // update the hidden field to 1
   // then submit the form
}
</script>

var form_submit=函数(){
//将隐藏字段更新为1
//然后提交表格
}

您可以在onchange中调用多个函数,并用导致表单提交的select字段的名称填充另一个字段(或按下submit按钮时该字段为空):


您可以在onchange中调用多个函数,并用导致表单提交的select字段的名称填充另一个字段(或按下submit按钮时该字段为空):



只需检查
$\u POST['submit']
查看是否已设置,但请确保先命名。只需检查
$\u POST['submit']
查看是否已设置,但确保先命名。呸!很简单,但我没有想到。我已经实施并发挥作用。工作起来很有魅力。谢谢哼!很简单,但我没有想到。我已经实施并发挥作用。工作起来很有魅力。谢谢