我正在尝试创建一个库存系统。此库存系统基于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 />';
}
任何提示?
答案 0 :(得分: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 .')" />