0

我正在尝试创建一个库存系统。该库存系统基于 MAC 地址(12 个字符,十六进制)的条形码。所以在一个页面上,我询问型号和用户想要添加的数量,这可以是从 2 到 100 的任何地方,根据他们在那里输入的内容,他们会在下一个页面上显示适当数量的 MAC 地址字段页。我要做的是让它 A) 输入 12 个字符时移到下一个 MAC 字段,并且 B) 验证输入的字符串是 12 个字符的十六进制字符串。这样,某人只需扫描每个条形码并流畅地完成整个过程。我遇到的问题是它完全不起作用。我认为这是调用动态输入字段的尝试。

Javascript:

function isValidMacAddress(mac) {
var RegExPattern = /^[0-9a-fA-F]+$/;

if (!(mac.match(RegExPattern)) || mac.length != 12) {
    return false;
} else {
    return true;
}
}

function valandmove() {
    var field = this.value+1;
    isValidMacAddress(this.value);
    if (this.value.length == 12) this.form.elements.field.focus();
}

PHP/HTML:

if($_POST['type'] == "rad") {
    echo '<div class="cell">Model</div><div class="cell">' . $label . '</div><br />';
    for($i=1;$i<=$quan;$i++) {
        echo '<div class="cell">' . $model . '</div><div class="cell"><input type="text" name="mac' . $i . '" maxlength=12 size=14 onKeyUp="valandmove()" /></div><br />';
    }

有什么提示吗?

4

1 回答 1

0

将 isValidMacAddress 更改为:

function isValidMacAddress(mac) {
    var RegExPattern = /^[0-9a-fA-F]+$/;

    if ((mac.match(RegExPattern)) && mac.length == 12) {
        return true;
    } else {
        return false;
    }
}

将 valandmove 更改为:

function valandmove(input, index) {
var field = input;
if (isValidMacAddress(field.value)) field.form[index+1].focus();
 }

改成 :

<input type="text" name="mac' . $i . '" maxlength=12 size=14 onKeyUp="valandmove(this, ' . $i .')" />
于 2013-05-24T16:15:26.623 回答