2013-10-11 128 views
0

我正在使用javascrpt来验证文本框,并显示一个警告,如果用户输入一个数字,而不是0到9,A到F.我看到下面的代码工作正常jsfiddle以及PHP小提琴。但是,当我加入这个WordPress的网站,它不能正常工作onkeyup jquery函数不工作

<div class="input-resp-hpux-vbus"><span><input class="textbox" id="vbus-id" name="vbus-id" type="text" /></span></div> 
<div id="output"></div> 
<script type="text/javascript" src="http://127.0.0.1:4001/wordpress/wp-content/themes/freshlife/includes/js/emcsaninfo-symcli.js"></script> 

和JavaScript代码:

$(document).ready(function() { 
    $('#vbus-id').keyup(function() { 
     var text_value = document.getElementById("vbus-id").value; 

     if (!text_value.match(/\b[0-9A-F]\b/gi)) { 
      document.getElementById("vbus-id").value = ""; 
      // document.getElementById("vbus-id").focus(); 
      var message = "You have entered a invalid id.Vbus id ranges   from 0 to F in hexadecimal"; 
      document.getElementById("output").innerHTML = message; 
     } 
     else 
      document.getElementById("output").innerHTML =""; 
    }); 
}); 

不知道为什么这个脚本不工作在我的wordpress,我有v jQuery的版本1.10。 1在我的网站上 小提琴安装: JSFIDDLEPHPFIDDLE

+0

什么错误信息你get?其他的jquery代码在那个网站上工作吗?我记得在某些情况下,你必须用'jQuery(stu ff'在WordPress – Kaarel

+0

你为什么在你的回调中获取'#vbus-id'?使用'this'指针。另外,请使用jQuery函数。 – Johan

+0

@ Kaarel Kont-Kontson:我已经用'jquery'替换了'$',但它仍然存在问题..还有其他jquery代码工作正常..与此文本框一起发布.. – acr

回答

4

Wordpress将您的单引号(')转换为一些Unicode。

那就是为什么你的代码在wordpress中不工作。

用双引号(“)在JavaScript代码。

,改变

$('#vbus-id').keyup(function() { 

$("#vbus-id").keyup(function() { 

希望它可以帮助...

0

是否有任何错误? 确保jQuery是加载一次,而你的脚本太.. 调用这个网址在浏览器中,以检查是否everyting是正确的:

http://127.0.0.1:4001/wordpress/wp-content/themes/freshlife/includes/js/emcsaninfo-symcli.js 

为什么你在KEYUP功能上平原JS切换,你可以只是像jQuery留下这样的:

$(document).ready(function() { 
    $('#vbus-id').keyup(function() { 
     var $this = $(this); 
     var $output = $("#output"); 
     var text_value = $this.val(); 
     var message = "You have entered a invalid id.Vbus id ranges from 0 to F in hexadecimal"; 

     if (!text_value.match(/\b[0-9A-F]\b/gi)) { 
      $this.val(""); 
      $output.html(message); 
     } 
     else 
      $output.html(""); 
    }); 
});