仅允许特定的设定值

时间:2013-03-05 14:43:16

标签: javascript

我有一张表格,我试图在提交时只允许某些值 允许为1-8,n和空白。就是这样 我已经开始了1-8但是对于n和空白我不知道。

function check(form) {
    if (form.scores.value > 8 || form.scores.value <= 0) {
        self.alert(form.scores.value + " is an invalid value! Allowed values are 1 to 8, n and blank");
        form.scores.focus();
    }
}

HTML

<input type="text" name="scores" id="scores" maxlength="1" size="2" value="<%= number %>" />

HTML:

<input type="button" onClick="check(this.form)" value="Edit" />

请帮忙

由于

1 个答案:

答案 0 :(得分:1)

请参阅下面的重构并修复。

<script>

function check(form_field)
{

  var allowed = /^[1-8n\s]{1}$/;

  var field = document.getElementById(form_field).value;

  if (field.match(allowed)) {
    document.myform.onsubmit = function() {
     return true;
    }
  } else if (field.length == 0) {
    document.myform.onsubmit = function() {
     return true;
    }
  } else {
   alert(field + " is an invalid value! Allowed values are 1 to 8, n and blank");
  }

}

</script>


<form name="myform" onsubmit="return false">

<input type="text" name="scores" id="scores" maxlength="1" size="2" value="<%= number %>"/>
<input type="submit" onClick="check('scores')" value="Edit" />
</form>

使用javascripts regex检查值。可能不需要“{1}”,因为重复一次的模式仅仅是模式。

随意更改check()函数的机制,随意抓取正则表达式部分,这样它就会传递表单字段ID,并从中识别出值。

如果满足条件,它确保只提交表单。

编辑:
或者查看listbox以获取一个漂亮的jquery插件来执行此操作(如@Ark所述)

希望有所帮助