我有这个html
形式,它实际上并没有将数据发送到php文件,而是将数据发送到javascipt函数。
如果我点击“开始”按钮就可以正常工作,但是如果我选择了某些内容并点击“输入”,则无法正常工作。不将数据发送到函数,即。
我已经使用相同的模式制作了其他表单,将数据发送到同一文件中的javascript函数并且它们可以工作。这一个拒绝。
我该如何解决这个问题?感谢
<form id="boroughform" enctype="multipart/form-data" method="post" action="#" onSubmit="return goborough(this); return false;" >
Choose borough:<br/>
<select name="boroughselect" id="boroughselect" >
<option selected value=" ">Choose...</option>
//fill the options with the results of a query performed eariler - works
<?php
for ($v=0; $v< sizeof($borough) ; $v++)
{echo '"<option value="'.$bid[$v].','.$bboxa[$v].','.$bboxb[$v].','.$bboxc[$v].','.$bboxd[$v].'" >'.$borough[$v].'</option>';}
?>
</select><br/>
<input type="submit" value="Go" name="postbor" class="formButton">
</form>
//the js
function goborough(g){
var binfo=g.elements['boroughselect'].value;
if(binfo!=" "){
//some cool openlayers staff here
return false;
}
else{alert('You have not chosen a borough !!! ');return false;}
}
答案 0 :(得分:2)
在你的表单元素(select)中试试这个,
onkeypress="if(event.keyCode==13) {this.submit();}"
或者使用jquery,
$(document).ready(function() {
$("input").keypress(function(event) {
if (event.which == 13) {
event.preventDefault();
$("#broughtform").submit();
}
});
});
答案 1 :(得分:1)
您的问题不在代码中,但是select
元素已将 enter 键保留用于其他目的,请参阅why doesn't hitting enter when a SELECT is focused submit the form?
将onkeypress
事件应用于select
元素以更改此默认行为。
答案 2 :(得分:1)
如果你确定一切都很好,它应该去。然后你可以用这个:
onkeydown(submitform)
在表单标签中,在函数中你应该使用它:
function submitform () {
if(event.keyCode == 13) {
// submit the form.. as enter key code is 13.
}
}
我不确定为什么它不起作用。您应该尝试从浏览器中读取并查看控制台,它必须告诉您错误是什么。尝试在浏览器中按F12。您将在那里获得错误代码,尝试谷歌搜索,或在问题中分享。
答案 3 :(得分:0)
您应该返回true
来提交表单,但是您总是返回false return false
并且它会阻止提交。
<强> JS:强>
function goborough(g){
var binfo=g.elements['boroughselect'].value;
if(binfo!=" "){
//some cool openlayers staff here
return true;
}
else{
alert('You have not chosen a borough !!! ');
return false;
}
}
<强> HTML:强>
你有这个
onSubmit="return goborough(this); return false;"
但是,它应该是
onSubmit="return goborough(this);"