【问题标题】:Submit Form with Input still selected提交表单时仍选择输入
【发布时间】:2014-07-14 20:53:23
【问题描述】:

我有这个简单的表格,我正在尝试提交。它有 3 个输入:文本字段,其中填充了计算中的数据,具体取决于您在哪个字段中输入信息。我可以按 Enter 并且它工作正常,因为我仍然专注于该字段,但如果我不会提交表单点击提交按钮。这是html。

<form id="pr">
<table width="680px" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr>
    <td colspan="3" align="center" bgcolor="#CCCCCC" class="header">Pressure Conversion Calculator</td>
  </tr>
  <tr>
    <td bgcolor="#efefef" class="text">Psi</td>
    <td bgcolor="#efefef" class="text">MPa</td>
    <td bgcolor="#efefef" class="text">Bar</td>
  </tr>
  <tr>
    <td bgcolor="#efefef" class="text"><input id="psi" name="psi" type="text"  size="7" value=""/></td>
    <td bgcolor="#efefef" class="text"><input id="mpa" name="mpa" type="text"  size="7" value="" /></td>
    <td bgcolor="#efefef" class="text"><input id="bar" name="bar" type="text"  size="7" value="" /></td>
  </tr>
  <tr>
    <td colspan="3" bgcolor="#efefef">&nbsp;</td>
  </tr>

  <tr>
    <td colspan="3" bgcolor="#efefef">
    <input type="submit" name="button" id="submit" value="Calculate" class="submitbutton"/> 
    <input type="button" name="clear" id="clear" value="Clear Fields" class="submitbutton"/>
    </td>
  </tr>

  <tr>
    <td colspan="3" bgcolor="#efefef" height="5"></td>
  </tr>

</table>

然后是 jquery

$('#submit').click(function(event){
event.preventDefault();

    if($('#psi').is(':focus')){
        pressure = parseInt($('#psi').val());       
        bar = pressure * 0.0690;
        $('#bar').val(bar.toFixed());       
        mpa = pressure * 0.006894759086775369;
        $('#mpa').val(mpa.toFixed());               
    }

    else if($('#mpa').is(':focus')){
        pressure = parseInt($('#mpa').val());
        bar = pressure * 10;
        $('#bar').val(bar.toFixed());        
        psi = pressure * 145.0377;
        psi = Math.round(psi/1000)*1000;    
        $('#psi').val(psi);             
    }

     else if($('#bar').is(':focus')){
        pressure = parseInt($('#bar').val());
        mpa = pressure * 0.1;
        $('#mpa').val(mpa.toFixed());
        psi = pressure * 14.500;
        psi = Math.round(psi/1000)*1000;
        $('#psi').val(psi);     
    }

    else{}  

});

我对此有点陌生,我只是想解决所有的错误。任何帮助将不胜感激。

【问题讨论】:

  • event.preventDefault() 阻止它提交,因为这是单击提交按钮的默认操作。只有在验证确定不应该提交时,您才应该这样做。

标签: jquery forms focus submit


【解决方案1】:

使用常规按钮(删除type="submit"),然后在您的代码中提交表单:

document.forms[0].submit();

【讨论】:

  • 这不起作用,因为如果您关注另一个字段并在那里输入一个数字,它会恢复为上次提交提供的文本字段中的原始答案。
猜你喜欢
  • 1970-01-01
  • 2016-09-09
  • 2014-02-05
  • 1970-01-01
  • 2015-02-11
  • 1970-01-01
  • 2021-06-02
  • 2017-01-30
  • 2011-09-20
相关资源
最近更新 更多