2016-11-30 7 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入力フィールド全体が無効になります。 –

+0

01という数字だけが編集可能である必要がありますか? –

答えて

0

希望このJS Fiddleはあなたがonchangeイベントハンドラを使用して選択した入力コントロールを無効にするには、簡単なJavaScriptを使用できるソリューション

<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/private/ichfnsradby3diwsnkudjwしかし、それは動作していません。 –

+0

あなたはフィドルを作り、私と分かち合うことができますか? –

+0

ここに私のフィドルがあります:https://jsfiddle.net/wcbvsm99/1/ –

関連する問題