1

我有这个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;}

}
4

4 回答 4

2

在您的表单元素(选择)中试试这个,

onkeypress="if(event.keyCode==13) {this.submit();}"

或者使用jquery,

$(document).ready(function() {
  $("input").keypress(function(event) {
    if (event.which == 13) {
        event.preventDefault();
        $("#broughtform").submit();
    }
  });
});
于 2013-10-06T19:12:55.220 回答
1

您的问题不在代码中,而在于该select元素已将enter密钥保留用于其他目的,请参阅为什么在 SELECT 集中提交表单时不按 Enter 键?

onkeypress事件应用于select元素以更改此默认行为。

于 2013-10-06T19:14:04.827 回答
1

如果你确定一切都很好,它应该去。然后你可以使用这个:

onkeydown(submitform)

在表单标签和函数中你应该使用这个:

function submitform () {
  if(event.keyCode == 13) {
    // submit the form.. as enter key code is 13.
  }
}

我不确定为什么它不起作用。您应该尝试从浏览器阅读并查看控制台,它必须告诉您错误是什么。尝试通过在浏览器中按 F12 来执行此操作。你会在那里得到一个错误代码,尝试用谷歌搜索它,或者在问题中分享它。

于 2013-10-06T19:14:21.717 回答
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);"
于 2013-10-06T19:14:12.223 回答