0

携帯電話番号の入力フィールドがあり、その入力フィールド内に「+91」が常にユーザーに表示されるようにしたい..つまり、ユーザーはそれを消去できない。

そのため、INPUT FIELDの値が+91に等しい場合、BACKSPACEとDELETEボタンを無効にする予定でした

startegy は FIREFOX では正常に機能していますが、CHROME ではすべて台無しです。

私はたくさんグーグルで調べましたが、CHROMEでバックスペースを無効にするための成功したコードを見つけることができませんでした. :(

これが私のFIREFOXのコードです

<script  language="JavaScript" type="text/javascript">
document.onkeypress = function(e)  // FireFox/Others 
    {
    var t=e.target.id;
    var kc=e.keyCode;
    if ((kc == 8 || kc == 46) && t == "phonen" && document.getElementById(t).value=="+91")
    { e.preventDefault();
        return false;}
    else {
                return true

    }
   }
   function sett(e)
   {e.value="+91";}
</script>

誰かが私にCHROMEで同じことをする方法を提案できますか???

4

4 に答える 4

3

コメントに書いたように...この種のアプローチを気にしないでください。偽造するだけです。簡単な方法を次に示します (ただし、フォントや間隔などを調整したい場合があります)。

html :

<div class="prefix-wrapper">
  <span class="prefix">+91</span>
  <input type="text" value="">
</div>

css :

.prefix-wrapper {
  position: relative;
}

.prefix-wrapper .prefix {
  position: absolute;
  z-index: 2;
  top: 3px;
  left: 5px;
  color: #999;
}

input {
  padding-left: 30px;
}

デモ: http://jsbin.com/elatot/1/

于 2013-06-12T09:33:17.147 に答える
0

ユーザーは引き続きマウスでクリックするか、カーソルを移動して+91文字列を編集できます。

ハンドラーを入力にバインド.keyup.change、プレフィックスが含まれているかどうかを確認することをお勧めします(jQueryの方がはるかに簡単であることに注意してください)。このような:

$('#your_input_id').on('keyup change', function() {
  if ( $(this).val().indexof('+91') != 0) $(this).val('+91');
});
于 2013-06-12T08:59:05.437 に答える
0

jQueryでこれを試してください:

// HTML コード

<input type="text" name="phone" id="phone" class='phone' placeholder='+918888888888' value='' maxlength='13' />

// jQuery コード

$(document).keydown(function (e) {
    var l = $('.phone').val().length;
    var elid = $(document.activeElement).hasClass('phone');
    if (e.keyCode === 8 && elid && l == 3) {
        return false;
    } else {
        return true;
    }
});

フィドルのデモ

于 2013-06-12T09:15:51.733 に答える
0

jQuery を使用しない解決策は、change/keyup イベントに直接接続することです。

var checkPhone = function (e) {
    if (e.target.value.indexOf('+91') != 0) {
        e.target.value = '+91';
    }
}
var phoneElement = document.getElementById('phonen');
phoneElement.onchange = checkPhone;
phoneElement.onkeyup = checkPhone;
于 2013-06-12T09:22:45.713 に答える