-1

如果用户输入特定值(% 或 *),我想显示错误/警报消息。如果用户只输入 % 或 * 并点击“提交”,则警报或消息应显示“不允许这样做”。但是,应该允许 SM%TH 或 *MITH。

HTML

<input type="text" name="ANSWER.TTQ.MENSYS.3." id="ANSWER.TTQ.MENSYS.3." value="" class="forminfree">
<input type="submit" name="ANSWER.TTQ.MENSYS.7." id="ANSWER.TTQ.MENSYS.7." value="Search" class="formsubfree" style="width:100px" onclick="searchCheck()">

脚本

function searchCheck(){
}

一如既往,您的帮助将不胜感激。

4

4 回答 4

2

试试这个:

function searchCheck(){
     var answer = $.trim($(this).find('input[type=text]').val());
     if(answer == '*' || answer == '%') alert('this is not allowed');
}
于 2013-07-23T12:48:14.517 回答
0

首先获取值。使用 jQuery:

var str = $("#ANSWER.TTQ.MENSYS.3.").val();

使用 KY不使用 jQuery:

var elem = document.getElementById("ANSWER.TTQ.MENSYS.3.");
var str = elem.value;

现在您只需检查一下:

str = str.trim();
if (str == "*" || str == "%") {
    alert("This is not allowed. Get off my system!");
}
于 2013-07-23T12:48:46.010 回答
0

访问带有点 (.) 的 ID 时可能会出现问题。为了避免这种情况,您必须使用$('#ANSWER\\.TTQ\\.MENSYS\\.3\\.')这种方式。

  function searchCheck(){
         var answer = $.trim($('#ANSWER\\.TTQ\\.MENSYS\\.3\\.').val());
         if(answer == '*' || answer == '%') alert('this is not allowed');
    }

演示在这里:http: //jsfiddle.net/Kk8GC/

于 2013-07-23T12:58:30.670 回答
0

爬过字符串,检查前面的 * 或 % 并停止跟进 ** 或 %* 但不是 %%。

function searchCheck(){

var pos=0;
var error=false;
var prior=false;

while(pos<your_string.length && !error){
  if(prior){
    if(your_string.charAt(pos) == '*'){
      error = true;
    } else if(your_string.charAt(pos) != '%') prior = false;
  } else { 
    if(your_string.charAt(pos) == '%' || your_string.charAt(pos) == '*')
      prior = true;   
  }
  pos++;
}
if(error || (your_string.length==1 && prior)){
    alert("not allowed");
}

}
于 2013-07-23T13:08:58.210 回答