2016-11-30 125 views
0

我在我的酒店管理系統中使用此表單。這是房間表格的註冊。所以房間號碼取決於樓層(+2至4位數字)。下面是它的外觀:輸入字段的值不可編輯

enter image description here

所以值在房間的地板傳球不應該是編輯。這是我用JAVASCRPIT:

<script type="text/javascript"> 
//<![CDATA[ 
$(document).ready(
     function() { 
      $("#_roomNumber_id").on("keydown", function(e) { 
        if (($(this).get(0).selectionStart == 0 && (e.keyCode < 35 || e.keyCode > 40)) 
         || ($(this).get(0).selectionStart == 1 && e.keyCode == 8)) { 
         return false; 
       } 
       }); 

       $("#_roomNumber_id").bind("contextmenu", function(e) { 
        e.preventDefault(); 
       }); 
      }); 
//]]> 
</script> 

但是的JavaScript做的是禁用數字字符的基礎,你在這條線($(this).get(0).selectionStart == 1 && e.keyCode == 8)申報的唯一的事情,它不應該是這樣的,整個價值的通票不應該是可編輯的。我希望有一個人可以幫助我。謝謝。

+0

嘗試禁用的屬性 –

+0

@KarthikSivakumar整個輸入字段將被禁用Sir。 –

+0

那麼只有數字即01應該是可編輯的嗎? –

回答

0

希望這JS Fiddle幫助您獲得解決

<input id="field" type="text" value="Basement-" size="10" /> 

<div id="output"> 
</div> 

var readOnlyLength = $('#field').val().length; 

$('#output').text(readOnlyLength); 

$('#field').on('keypress, keydown', function(event) { 
var $field = $(this); 
$('#output').text(event.which + '-' + this.selectionStart); 
if ((event.which != 37 && (event.which != 39)) 
    && ((this.selectionStart < readOnlyLength) 
    || ((this.selectionStart == readOnlyLength) && (event.which == 8)))) { 
     return false; 
    } 
});      
+0

我有一些問題先生。導致不應編輯的值是來自會議室號碼字段(id =「_roomNumber_id」)傳遞的發言權值(id =「_floor_id」),所以我嘗試這樣做:http://pastie.org /私人/ ichfnsradby3diwsnkudjw但它不工作。 –

+0

你可以做一個小提琴並與我分享? –

+0

這是我的小提琴先生:https://jsfiddle.net/wcbvsm99/1/ –