2013-07-23 3 views
-1

Я хочу показать сообщение об ошибке/предупреждении, если пользователь вводит определенные значения (% или *). Если пользователь вводит только% или * и нажимает «submit», тогда предупреждение или сообщение должны сообщать «Это не разрешено». Тем не менее, 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()"> 

SCRIPT

function searchCheck(){ 
} 

Как всегда ваша помощь будет высоко оценен.

+1

найти регулярное выражение и посмотреть, что с ним можно сделать –

+1

Достаточно того, что у вас там есть! – Amberlamps

+0

Вы не должны использовать точку в своем имени, это просто усложняет вещь в селекторе запросов и добавляет обратную косую черту. –

ответ

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/

+0

Привет! VeeKayBee .. У меня было это вчера без $ ('# ANSWER \\. TTQ \\. MENSYS \\. 3 \\.'). Спасибо. Кроме того, после нажатия на предупреждение, форма отправляется. return false не останавливает его. – 19eggs

+0

Привет! Я разобрался. Спасибо Редактированная версия здесь http://jsfiddle.net/Kk8GC/8/ – 19eggs

+0

@ 19eggs Great !!!. Счастлив, что у тебя есть решение. Мне жаль, что я видел ваш комментарий только сейчас и счастлив, что вы исправили сами. :) – kbvishnu

2

Попробуйте это:

function searchCheck(){ 
    var answer = $.trim($(this).find('input[type=text]').val()); 
    if(answer == '*' || answer == '%') alert('this is not allowed'); 
} 
+0

+1 для важной обрезки –

+0

+1 для обрезки. Отредактировал свой ответ, чтобы включить его после того, как увидел, что вы его используете. – Renan

+0

Привет! Карл-Андре Ганьон, Я боюсь, что это не сработало. В любом случае, спасибо. – 19eggs

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!"); 
} 
+1

Привет! Ренан, я не пробовал ваш код, но я уверен, что он сработает, так как он похож на ответ VeeKayBee. Спасибо. – 19eggs

0

Crawl над строкой, проверьте * или предшествующего% и прекратить с последующим планом ** или% *, но не %%.

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"); 
} 

} 
+0

Привет! Лемми, я решил использовать ответ VeeKayBee, поскольку он короче. Но спасибо, что нашли время и ответили. – 19eggs