-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();

jQuery なしの KYあり:

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 に答える