Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 输入特定值时发出警报_Javascript_Jquery - Fatal编程技术网

Javascript 输入特定值时发出警报

Javascript 输入特定值时发出警报,javascript,jquery,Javascript,Jquery,如果用户输入了特定值(%或*),我想显示一条错误/警报消息。如果用户只输入%或*并点击“提交”,则警报或消息应显示“这是不允许的”。但是,应允许SM%TH或*MITH HTML 一如既往,我们将非常感谢您的帮助。试试以下方法: function searchCheck(){ var answer = $.trim($(this).find('input[type=text]').val()); if(answer == '*' || answer == '%') alert(

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

HTML

一如既往,我们将非常感谢您的帮助。

试试以下方法:

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

首先获取值。使用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!");
}

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

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

此处演示:

在字符串上爬行,检查是否在*或%之前,并以**或%*而不是%%的后续操作停止

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

}
函数搜索检查(){
var-pos=0;
var错误=错误;
var-prior=false;

虽然(可能搜索正则表达式,看看它能做些什么——这和你得到的函数完全一样!你不应该在你的id名称中使用点,这只是使查询选择器中的事情复杂化并添加反斜杠。这是什么?填写代码?很好…答案。TTQ.MENSYS.3.不是一个有效的id。你不能在id或类中使用任何看起来很好的字符。y是什么你在这里使用的,在选择器中使用的,是指所有标签“应答”和类“TTQ”、“MENSYS”、“3”、”,这显然会导致错误。+1用于修剪。在我看到你使用它后编辑了我的答案以包括它。嗨!卡尔·安德烈·加农,恐怕它不起作用。无论如何,谢谢你。嗨!VeeKayBee..我昨天有这个,没有$(“#ANSWER\\.TTQ\\.MENSYS\\.3\\\”)。谢谢。此外,单击警报后,表单将被提交。返回false不会阻止它。@19egs很棒!!!。很高兴您找到了解决方案。很抱歉,我现在只看到了您的评论,很高兴您自己修复了它。:)@19蛋提到了这一点,但我认为有些浏览器可能不起作用。所以最好使用下划线(u)而不是点(.)嗨!雷南,我还没有试过你的代码,但我相信它会起作用,因为它与VeeKayBee的回复类似。谢谢。嗨!莱米,我决定使用VeeKayBee的答案,因为它比较短。但是谢谢你花时间回复。
  function searchCheck(){
         var answer = $.trim($('#ANSWER\\.TTQ\\.MENSYS\\.3\\.').val());
         if(answer == '*' || answer == '%') alert('this is not allowed');
    }
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");
}

}