テキストの入力では3つの単語がスペースで区切られますが、3を超えるとユーザーはこれ以上入力できません。これはjQueryを使用して可能ですか? 私はlistenするためにkeyupイベントを使うことができますが、無効にすることなくユーザーがより多くのトークンを入力するのを止めるにはどうすればいいですか? これは、htmlのテキスト入力のネイティブのmaxlengthプロパティに似ていますが、この場合のmaxLengthはトークンの数です。jqueryのテキスト入力の長さの制御
答えて
入力がすでに3語で、スペースを入力しようとしているかどうかを確認してください。
$('#myTextbox').keydown(
function(event)
{
var input = $(this).val();
var numberOfWords = input.split(' ').length;
if(numberOfWords == 3 && event.keyCode == 32)
{
return false;
}
}
);
編集:そうfalseを返す場合 をどこ誰かがフィールド内の過去のテキストかもしれない状況について追加質問がありました。クロスブラウザのソリューションとして、おそらく@ karim79に似たコードをblurイベントにバインドします。
$('#myTextbox').blur(
function(e)
{
var tokens = $(this).val().split(' ');
if(tokens.length > 3)
{
$(this).val(tokens.slice(0,3).join(' '));
}
}
);
+1固溶体 – karim79
非常に良い。上記のように、ユーザーがコピーして入力に貼り付ける状況を処理するクロスブラウザの方法はありますか?ペーストイベントはブラウザ間ではありません。 – user121196
ぼかしイベントは、テキスト入力が過去にフォーカスされていて、まだペースト後にフォーカスがあるので、実際にペーストを検出するためには機能しません。 他のアイデアですか? – user121196
EDIT:このような何かを行う必要があります(テスト):ユーザーがつ以上の単語を入力しようとすると
$('#myTextbox').keyup(function(e){
var wordArr = $(this).val().split(' ');
if(wordArr.length > 3 && e.keyCode == 32) {
var arrSlice = wordArr.slice(0,3);
var newStr = arrSlice.join(' ');
$(this).val(newStr);
}
});
、内容は最初の三つの言葉で上書きされます。この解決策は、3つの単語が超過された場合に、入力されると文字が削除されることを示し、フィードバックを提供します。
これが望ましい動作でない場合は、@ Jataroの解決策があります。
が
$('#myTextbox').change(
function()
{
var input = $(this).val();
var numberOfWords = input.split(' ').length;
if(numberOfWords > 3)
{
$(this).val(input.substring(0, input.lastIndexOf(' ')-1));
}
}
);
、のようなものかもしれませ私はこのコードを確認していませんが、このようなものは動作するはずです。
そして、はい、mgrovesは言ったように、サーバー上のすべての再検証を忘れないでください。
- 1. 制御されるタイプのテキストの制御されない入力
- 2. ユーザ入力の制御
- 3. 入力ボックスのJquery制限テキスト
- 4. ASP.NETのセッション長の制御
- 5. 新しい入力制御
- 6. HTMLタグを含むテキストの入力長を制限する
- 7. jqueryの入力ファイルのテキスト
- 8. ASP .Netリピータ制御出力の高さを制御する
- 9. CSS3を使用して入力テキストの長さを制限する方法は?
- 10. jQueryの選択入力テキスト
- 11. jqueryハイライトセルのテキスト入力
- 12. Asp.netログイン制御 - パスワードのテキスト
- 13. プロセスからのNSPipe入力が制御されない
- 14. 制御された入力を持つステートレスのリアクトコンポーネント
- 15. ReactJS:状態の配列 - 制御されない入力
- 16. Jquery - テキスト入力でテキストを制限する、テキストエリアではない
- 17. if文の後ろにある入力テキストを制御する文
- 18. Cでのコンソール入力の長さを制限する:
- 19. ReactJS警告:TextFieldは制御されるテキストタイプの制御されない入力を変更しています
- 20. React.jsはjqueryよりも制御された入力を優先しますか?
- 21. Jquery ControlGroupテキスト入力
- 22. Python Popen _with_リアルタイム入出力制御
- 23. Djangoフォーム入力を制御する
- 24. Linux - テキストの長さを制限する
- 25. コンポーネントがReactJSで制御されるタイプのテキストの制御されない入力を変更しています
- 26. ログ出力の制御
- 27. jquery tablesorterフィルタの長さの制限
- 28. 入力テキストの文字制限
- 29. AVX512ベクトル長とSAE制御
- 30. 反応制御入力入力できない[onChange]
サーバー側もチェックすることを忘れないでください。ユーザーはJavaScriptをオフにすることができます。 –