0

ID カードの磁気ストライプを読み取り、会費が支払われているかどうかにかかわらずデータベースから結果を表示できるようにする、非常に短い単純なプロジェクトを依頼されました。

私はこれをすべて機能させており、いくつかの迷惑な動作を取り除こうとしています。磁気ストリップ情報は、単一の入力テキスト フィールドを含むフォームに取り込まれています。ユーザーは送信をクリックして、2 番目の隠しページに進む必要があります。このページでは、情報を解析して変数に割り当て、データベース検索の準備をします。

ユーザーが送信ボタンを押す必要があるという要件を削除したいと思います。入力変数の長さが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

「キーボードウェッジ」として機能するバーコードリーダーでもまったく同じ問題がありました。

300ms のタイマーを開始します。各「キーストローク」の後に、タイマーをクリアして再起動します。タイマーがタイムアウトしたら、フォームを送信します。

参照:人が入力をやめた後に関数を呼び出すにはどうすればよいですか?

var timer;

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

function onKeyDownHandler(e) {
    clearTimeout(timer);
}
于 2012-12-13T14:58:59.507 に答える