从Form Post要求特定的第一个字符

时间:2014-06-20 02:46:43

标签: javascript php forms validation input

我只是把它放在那里看看是否有人可以抓住我的漂移并伸出手...... 我在一个公共图书馆工作,正在制作一个自我检查"机。 这里有一些代码 - 有一个名为" 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>

1 个答案:

答案 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;确实