2

私が達成しようとしているのは、テキストボックスを強制的にプレフィックス ( 国電話番号 ) で開始し、これを永続的にすることです。つまり、ユーザーはこれをバイパスできません。たとえば、電話テキストボックスは常に「+45」で始まり、その後にユーザーが電話番号を追加できるようにする必要があります。コードが削除されないようにするにはどうすればよいですか?

jQueryを使用して、これまでに行ったこと:

//attach event on phone text boxes
$(document).delegate(".phone", "keyup", function(event){

var target = $(this);

var value = target.val().trim();

if (value.indexOf(CONSTANTS.DANISH_PHONE_CODE) == -1) {
    //country code not found

    //if the user starts deleting the country code 
    if (value.indexOf("+") == 0){
        value = "";
    }

    //if the user types something in front of the country code, put the country code at the end
    value = value.replace(CONSTANTS.DANISH_PHONE_CODE, "");

    //phone doesn't start with +45
    value = CONSTANTS.DANISH_PHONE_CODE + value;

    target.val(value); 
}


});

しかし問題は、ユーザーがプラス記号を削除できることと、プレフィックスが先頭に自動的に配置されるため、+4545 になることです。これを達成するエレガントな方法を知っていますか?ありがとう。

4

3 に答える 3

3

フィールドの前に静的htmlとして+45を追加します。ユーザーに番号の「残り」(+45ではない)を入力するように要求しました。

必要に応じて、値を永続化する前に+45サーバー側を追加します。同様に、編集時に+45を削除します。

于 2012-07-18T14:43:31.360 に答える
3

テキストボックスの上にテキストを(スパン内で)絶対に配置し、左マージンを追加することができます。

このように、ユーザーはそれを削除することができなくなります。ただし、サーバー側に追加する必要があります。

于 2012-07-18T14:40:01.480 に答える
0

JSFiddleの例

これにより、ユーザーが変更した後に問題を修正しようとするのではなく、積極的に「+45」を削除しないようにする必要があります。キーを押したときに、文字の位置を決定します。文字列の位置が早すぎる場合(つまり、「+ 45」の後ろではなく内側)、そのキーが左矢印キーまたは右矢印キーでない限り、キーを押さないでください。

取得したリソース:

http://blog.vishalon.net/index.php/javascript-getting-and-setting-caret-position-in-textarea JS/jQueryのバインド矢印キー

于 2012-07-18T14:49:11.580 に答える