我只是把它放在那里看看是否有人可以抓住我的漂移并伸出手...... 我在一个公共图书馆工作,正在制作一个自我检查"机。 这里有一些代码 - 有一个名为" checkin"输入名为"条形码" - "条形码"的结果发布到一个php文件,该文件将数据发送到图书馆系统并收到一条消息,然后将该消息传递到表格中#34; completed-checkins"。
一切正常但是 - 我需要对表单中接受的数据设置一些条件。条件是前两个字符需要为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 :(得分:0)
您是否尝试过打印&#34; x&#34;到控制台?我认为你的问题是这一行
var x = form.elements.barcode.value.substring(0, 2);
只选择字符串中的前两个字符,然后将其与&#34; t00&#34;进行比较,这是三个字符长,因此总是评估为false。
另外,您可能需要考虑使用&#34; ===&#34;运算符而不是&#34; ==&#34;运营商。在这种情况下,两者都可以工作,但使用&#34; ===&#34;进入是一个很好的习惯。 &#34; ===&#34;按照你期望的方式工作,而&#34; ==&#34;在Javascript中有一些小问题。例如
0 == '0' //This evaluates to true
0 === '0' //This evaluates to false
基本上,&#34; ==&#34;不检查类型,&#34; ===&#34;确实