从按钮行为提交表单

时间:2014-07-02 07:15:39

标签: jquery

我想从按钮提交表单。

HTML

<form id="form-search" action="index.php" method="post">
  <select id="s1" name="s1" size="1">
    <option value=""></option>  
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
  </select>
  <input type="submit" name="submit" value="SUBMIT" id="btn_src" />
  <input type="button" value="RESET" id="btn_reset" />    
</form>

我试过这种方式,但它不起作用

$('#btn_reset' ).click(function(e)
{
   e.preventDefault();
   $('#form-search').submit();
});

所以我尝试了这种方式(触发点击)并且它工作正常,但我注意到如果我的按钮被禁用,我必须在执行表单之前单击2次。 我之前也尝试重新启用按钮,但没有成功。

$('select#s1').change(function()
{
   var s1 = $('select#s1 option:selected').prop('value');

   if(s1 == 4)
   {
       $('#btn_src').prop('disabled', true);
   }
});

$('#btn_reset' ).click(function(e)
{
   e.preventDefault();
   //$('#form-search').submit(); <-- not work
   $('#btn_src').prop('disabled', false);
   $('#btn_src').trigger('click');
});

JSFIDDLE

我该如何解决?那为什么会这样呢?感谢

更新 - 已解决!

重新启用提交按钮后添加超时我解决了问题。

setTimeout(function() { $('#btn_src').trigger('click'); }, 10);

1 个答案:

答案 0 :(得分:0)

在我看来,你需要把它变成一个“按钮”而不是“输入”...

<button id="btn_reset">RESET</button>

希望应该这样做......

Apols ...错误的剪切和粘贴上次...好吧试试这个...

$('select#s1').change(function()
{
var s1 = $('select#s1 option:selected').prop('value');

if(s1 === "4")
{
    $('#btn_src').prop('disabled', true);
} else {
    $('#btn_src').prop('disabled', false);
}

});

 $('#btn_reset' ).click(function(e)
 {
e.preventDefault();

    $('#form-search').submit(); // not work
    $('#btn_src').prop('disabled', false);
$('#btn_src').trigger('click');
 });