2012-12-17 75 views
0

我正在寫一個jquery函數來檢查用戶輸入是否包含字母而不是數字。我只是想獲得基本的功能工作,我正在使用一個警告框來測試這一點。無論輸入什麼,測試都應顯示警報。它在輸入數字時有效,但輸入的其他字符不會觸發警報。有什麼想法發生在這裏?輸入類型文本問題,

表單被分解爲包含在div中的字段集,它們作爲疊加層彈出。只要用戶試圖關閉彈出窗口,就會調用該函數。不是說這會導致問題嗎?

下面是測試功能:

function validateItem(item){ 
var fvalue = $(item).val(); 
alert(fvalue); 
return false; } 

下面是一個示例表項

<tr> 
<td class="td_thumbs"> 
    <div> 
     <a class="fancybox" data-fancybox-group="vinyl-banners" href="img/products/vinyl-corporateblue.jpg"> <img src="img/products/thumbs/vinyl-corporateblue-thumb.png" alt="vinyl c-blue"/></a> 
     <label>Corporate Blue</label> 
    </div> 
</td> 
<td>6</td> 
<td> 
    <input id="vinyl-blue" type="text" max="6" min="0" value="0"/> 
</td> 
</tr> 

調用函數,

//iterate through each table 
    $('table').each(function() { 

     $thisTable = $(this); 

     //iterate through each input 
     $(this).find('input').each(function() { 
      var $this = $(this), i_value = $this.attr('value'), 
       itemLabel = $this.closest('tr').find('label').html(); 
      //if any items have a positive value 
      if (i_value > 0) { 
       //we want to grab the heading for these items 
       setHeading = true; 

       //validate item 
       if(validateItem($this)){//if quantities are valid 
        //build list of items of this type 
       $this.css({ 
         'border':'1px solid #ddd', 
         'background-color' : '#efefef' 
         }); 
         items += '<li>' + i_value + 'x ' + itemLabel + '</li>'; 
       } 
       else{//invalid quantity 
        $this.css({ 
         'border':'1px dashed #F00', 
         'background-color' : '#f7d2d4' 
         }); 

         errorFlag = true; 
         //exit item and table loops  
         return false;     
       }//end validate     

      }//end value check 
     });//end input iteration 
+2

你能告訴如何你validateItem實際上越來越叫什麼參數你傳遞給它? – ryadavilli

+0

我已經爲你更新了我的Q .. – lukeocom

回答

0

發現的問題!該功能是在下列範圍內稱爲..

if (i_value > 0) { 

這意味着它當數輸入才被調用。我打的電話本之外if語句和它的作品如預期,因此該解決方案是改變

if(i_value > 0) 

if(i_value != 0) 
0

這裏是功能,您可以獲取內容的輸入框是否是數字或字母表,您可以Check Here

但是如果你不希望用戶輸入任何號碼,您可以用onkeypress事件事件

如下Check here

onkeypress 
+0

謝謝ameya_rote,我會執行這些並回復給你。 – lukeocom

+0

根據我的程序,發佈的解決方案都不適用於我。同樣的問題發生,警報不會被解僱。我將不得不嘗試一些其他的事情,並弄清楚發生了什麼事情。 – lukeocom

+0

你沒有正確地整合它,然後...因爲小提琴的代碼完全按照你所描述的那樣工作。 –