0

我被要求做一个非常简短的简单项目,以允许读取 ID 卡的磁条,并显示数据库中是否已支付或未支付会费的结果。

我已经完成了所有这些工作,并且正在尝试消除一些烦人的行为。磁条信息以具有单个输入文本字段的形式捕获。用户必须单击提交才能进入第二个隐藏页面,我在其中解析信息并分配给变量,为数据库搜索做准备。

我想删除用户必须按下提交按钮的要求。看来我应该能够触发输入变量的长度大于 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>
4

3 回答 3

2

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

于 2012-12-13T14:58:45.027 回答
2

对于充当“键盘楔”的条形码阅读器,我遇到了完全相同的问题。

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

请参阅:一个人停止打字后如何调用函数?

var timer;

function onKeyUpHandler(e){
    timer = setTimeout(function() {document.get_id.submit()}, 300)    
}

function onKeyDownHandler(e) {
    clearTimeout(timer);
}
于 2012-12-13T14:58:59.507 回答
1
<script>
function sub(){
var id = document.getElementById('ID_NUM_ENTER').value;
if(id.length >= 0)
document.getElementByTagName('form').submit();
</script>

这必须工作,我建议在处理数据库时使用 ajax,它工作得更快。

于 2012-12-13T15:12:55.033 回答