0

ターミナルコマンドプロンプトを作成しています(ユーザーは入力ボックスに書き込んでEnterキーを押すと、バックエンドからコマンドを受け取ることができます)。

モデルから入力ボックスのテンプレートにデフォルト値を渡しています。このデフォルト値は、バックエンドからフェッチされ、変更されるたびに (異なるユーザー名や "name $>" の形式になっている) 応答ですが、ユーザーが戻ってそれより前に書き込むことができないように、 $ の前にロックしたいのですが、それが私が試したことです:

var textValue = this.model.get("name") + " $> ";
var textString = String(textValue); 
var textStringLength = textString.length;
$("#textInput").on("change keyup keypress keydown", function(evt) {     
    if($("#textInput").val().length < textStringLength) {
       $("#textInput").val(textValue); 
    } 
}); 

でもまだ編集できます!驚くべきことに、バックスペースでしか機能しません (つまり、バックスペースで削除することはできません) が、矢印キーを使用したり、マウス カーソルをその間に置いたりすると、まだ編集できます! 何か案が?

それは私の入力ボックスです:<input type="text" id="textInput" name="" style="background: #222; autofocus> 何か考えはありますか? 別の解決策としてスパンを使用しますか?

4

3 に答える 3

0

以下のように2 つのテキスト ボックスを使用すると、問題は解決すると思います。私はすでにこのロジックを適用して、自分の同様のタイプの問題を解決しています。

<input type="text" id="textInput1" size="1" name="" style="border-right:0px;" value="$" readonly="readonly">
<input type="text" id="textInput" name="">

調整のためにいくつかのCSSを使用する必要があります。

于 2013-09-17T09:51:45.250 に答える
0

これを追加してみてください:

$("#textInput").attr("disabled",true); 

後:

$("#textInput").val(textValue); 
于 2013-09-17T09:41:18.593 に答える