填写后自动提交单个表单输入框



我被要求做一个非常简短的简单项目,以允许读取身份证的磁条,并在支付或不支付会费时显示数据库中的结果。

我有所有这些工作,并试图删除一些烦人的行为。 磁条信息以具有单个输入文本字段的表单捕获。 用户必须单击提交才能进入第二个隐藏页面,在该页面中,我解析出信息并分配给变量,为数据库搜索做准备。

我想删除用户必须按下提交按钮的要求。似乎我应该能够触发输入变量的长度大于 0。

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

..

<body onload = document.get_id.fID_Num.focus();>

..

<form id="get_id" name="get_id" method="post" action="card_swipe_process.asp">
  <table width="100%" border="5" cellpadding="2">
      <tr>
          <td width="45%" class="PIN_LABEL">Swipe ID Card</td>
          <td width="10%">&nbsp;</td>
          <td width="45%"><label for="fID_Num"></label>
          <input name="fID_Num" type="text" id="fID_Num" maxlength="15" /></td>
      </tr>
      <tr>
          <td class="PIN_LABEL">&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
      </tr>
      <tr>
          <td class="PIN_LABEL">&nbsp;</td>
          <td>&nbsp;</td>
          <td><input type="submit" name="ID_NUM_ENTER" id="ID_NUM_ENTER"              value="Submit" /></td>
      </tr>
  </table>
</form>

我假设您在某处有读取卡号并将其放入框中的代码。只需向该代码添加document.getElementById('get_id').submit()即可。这样,如果需要,用户仍然可以键入数字。

我在使用充当"键盘楔子"的条形码阅读器时遇到了完全相同的问题。

启动计时器 300 毫秒。每次"击键"后清除并重新启动计时器。计时器超时后,提交表单。

请参阅:在用户停止键入后如何调用函数?

var timer;
function onKeyUpHandler(e){
    timer = setTimeout(function() {document.get_id.submit()}, 300)    
}
function onKeyDownHandler(e) {
    clearTimeout(timer);
}
<script>
function sub(){
var id = document.getElementById('ID_NUM_ENTER').value;
if(id.length >= 0)
document.getElementByTagName('form').submit();
</script>

这必须有效,我建议在处理数据库时使用 ajax,它的工作速度更快。

最新更新