2013-10-11 127 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(""); 
    }); 
});