2014-06-20 59 views
0

我只是把這個在那裏,看看是否有人能明白我的意思,給手.. 我的公共圖書館工作,我在做一個「自我檢入過程「機器。 下面是它的一些代碼 - 有一個名爲「checkin」的表單,其中有一個名爲「條形碼」的輸入 - 「條形碼」的結果發佈到一個php文件中,該文件將數據發送到庫系統並接收到一條消息傳入一張表格「完成 - 簽到」。需要特定人物首先從表單提交

這是所有工作正常,但 - 我需要把什麼數據從形式接受一些條件。該條件是前兩個字符必須是T00。

我一直在尋找的網站,並試圖借/適應別人的代碼,使這項工作,這就是我得到這個從;

<script type="text/javascript"> 
    function checkCode() { 
     var form = document.getElementById('checkin'); 
     var x = form.elements.barcode.value.substring(0, 2); 
     // var x = this.value.substring(0, 2); 
     if (x == 't00') document.getElementById('#barcode').style.display = 'none'; 
    } 
</script> 

我不是真正的編碼器,但我想知道是否有人可以看到我如何才能得到這個工作? (它現在不會)。

非常感謝您的期待,

約旦。

而這裏的所有腳本的HTML;

<body OnLoad="$('#barcode').focus();" style="padding:40px;"> 
    <center> 
     <p> 
      <img src="selfchecklogo.png" /> 
     </p> 
     <div class="formbarwrapper"> 
      <div class="formbar"> 
       <form method="post" name="checkin" id="checkin" onsubmit="return checkCode()" /> 
       <input name="barcode" id="barcode" placeholder="scan an item..." autocomplete="off" maxlength="9" /> 
       </form> 
      </div> 
     </div> 
     <div class="result"> 
      <table id="completed-checkins"> 
       <tbody> 
        <tr> 
         <td id="cell"></td> 
        </tr> 
       </tbody> 
      </table> 
     </div> 
    </center> 
</body> 
<script type="text/javascript"> 
    function checkCode() { 
     var form = document.getElementById('checkin'); 
     var x = form.elements.barcode.value.substring(0, 2); 
     // var x = this.value.substring(0, 2); 
     if (x == 't00') document.getElementById('#barcode').style.display = 'none'; 
    } 
</script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#checkin').submit(function() { 
      $.post("index.php", { 
       barcode: $('#barcode').val() 
      }, 

      function(data) { 
       var content = ''; 
       content += '<div class="result">'; 
       content += '<tbody>'; 
       content += '<tr>'; 
       content += '<td>' + data + '</td>'; 
       content += '</tr>'; 
       content += '</tbody>'; 
       content += '</div>'; 
       $('#barcode').val('').focus(); 
       $('#completed-checkins tbody').html(content); 
      }); 
      return false; 
     }); 
    }); 
</script> 

</html> 

回答

0

您是否嘗試在控制檯上打印「x」?我覺得你的問題是,這條線

var x = form.elements.barcode.value.substring(0, 2); 

只選擇前兩個字符出字符串,然後你把它比作「T00」,這是長三個字符,因此將總是爲false。

而且,你可能要考慮使用「===」操作符,而不是「==」操作符。在這種情況下,兩者都可以工作,但使用「===」是一個很好的習慣。 「===」按照您期望的方式工作,而「==」在Javascript中有一些小問題。例如

0 == '0' //This evaluates to true 
0 === '0' //This evaluates to false 

基本上,「==」不會檢查類型,「===」會。

+0

@ user3758568這個回答你的問題? – stranger