2013-10-31 17 views
0

我有一個文本域價格Alow只在文本域中的整數和浮點值

我只想要Integer和Float值。

我已經完成整數。但它不接受浮點值,如:3110.6

這裏是我的代碼DEMO

JS:

$(document).ready(function() { 
    $("#price").keydown(function (event) { 
     // Allow only backspace and delete 
     if (event.keyCode == 46 || event.keyCode == 8) { 
      // let it happen, don't do anything 
     } else { 
      // Ensure that it is a number and stop the keypress 
      if (event.keyCode < 48 || event.keyCode > 57) { 
       event.preventDefault(); 
      } 
     } 
    }); 
}); 

HTML:

<input name="price" type="text" id="price"> 
+0

'如果(isNaN(parseFloat(...))|| isNaN(parseInt函數(...,10))'' – Zeta

+1
+0

更新小提琴嗎? –

回答

2

試試這個demo

$('#price').keypress(function(event) { 
      if(event.which == 8 || event.which == 0){ 
       return true; 
      } 
      if(event.which < 46 || event.which > 59) { 
       return false; 
       //event.preventDefault(); 
      } // prevent if not number/dot 

      if(event.which == 46 && $(this).val().indexOf('.') != -1) { 
       return false; 
       //event.preventDefault(); 
      } // prevent if already dot 
     }); 
+0

沒有底片??? –

+0

價格不能爲負 –

+0

你怎麼知道? –

1

只需使用這樣的:

<input name="price" type="number" id="price"> 

,並刪除你的JavaScript代碼。

+0

如何你你輸入小數點? –

+0

它不工作 –

+0

檢查他的小提琴演示。我曾在這裏工作兄弟。 –

1

嘗試正則表達式

/^[+-]?\d+(\.\d+)?$/ 

只是測試的onchange事件的輸入值。

+0

然後做什麼?你必須阻止它。 –

0

嘗試Demo點或期間已經鍵碼190

$(document).ready(function() { 
$("#price").keydown(function(event) { 
    // Allow only backspace and delete 
    if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 190) { 
     // let it happen, don't do anything 
    } 
    else { 
     // Ensure that it is a number and stop the keypress 
     if (event.keyCode < 48 || event.keyCode > 57) { 
      event.preventDefault(); 
      } 
     } 
    }); 
}); 

但是更好的將是http://jqueryvalidation.org/使用jQuery驗證插件作爲你沒有檢查自己。

jQuery的版本看到JQUERY VALIDATION

+0

數字鍵的鍵不起作用。 –

+0

TRy http://jsfiddle.net/devmgs/jVMUR/3/但我提醒你,你應該使用驗證器插件它仍然更好。 – dev