こんにちは、アクション ボタンのないテキスト ボックスが 1 つあります。入力自体では、A から z までかどうかを検証する必要があります。そうでない場合は、テキスト ボックスの横にエラーがスローされます。どうすればこれを達成できますか?
質問する
16093 次
4 に答える
2
どうぞ!私はそれを単純にしたので、それの基本的な論理を理解することができます:)
これが私のjsfiddleです。
http://jsfiddle.net/joedf/mhVqr/2/
HTML
<input type='text' id='textbox'>
<input type="button" class="button-disabled" id="change" disabled="disabled" value="click">
<div id="throwEx"/>
JS
$("#throwEx").hide();
$("#textbox").keyup(checkForm).focus(checkForm);
function checkForm() {
var needle = /^([a-zA-Z0-9]+)$/;
var inputVal = $("#textbox").val();
if (inputVal == '') {
$("#change").addClass("button-disabled").removeClass("button");
$("#change").attr("disabled", "disabled");
$("#throwEx").hide();
}
else if (!needle.test(inputVal)) {
$("#change").addClass("button-disabled").removeClass("button");
$("#change").attr("disabled", "disabled");
$("#throwEx").text("Error: Only Alphanumeric characters are allowed...");
$("#throwEx").show();
} else {
$("#change").removeClass("button-disabled").addClass("button");
$("#change").removeAttr("disabled");
$("#throwEx").hide();
}
}
于 2013-03-23T23:15:34.983 に答える
1
これはあなたのために働くかもしれません:
<input type="text" class="abc">
多分あなたは正規表現を調整しました、実際にそれをテストしていません:
$(document).ready(function() {
$('.abc').bind('keyup', function() {
regex = /^[A-z0-9]+$/;
if(!regex.test($(this).val())) {
$(this).next('.error').remove();
$(this).after('<div class="error">Wrong</div>');
} else {
$(this).next('.error').remove();
}
});
});
フィドル: http: //jsfiddle.net/EB6ET/2/
于 2013-03-23T23:13:38.043 に答える
1
これはstackoverflow hereから取得し、 Aからzまでの文字を入力するようにのみ変更しました。
<input type="text"/>
$(document).ready(function () {
$('input').keyup(function() {
var $th = $(this);
$th.val( $th.val().replace(/[^a-z]/g, function(str) { alert('You typed " ' + str + ' ".\n\nPlease use only letters and numbers.'); return ''; } ) );
});
});
フィドルへのリンクはこちら
于 2013-03-23T23:17:57.507 に答える
1
keyup 関数を使用して TextBox を制御することは、ユーザーが TextBox 内のテキストをコピー/貼り付けたり、ブラウザーのオートコンプリート フィールドのいずれかを選択したりする可能性があるため、悪い考えです。私のアプローチ:
HTML:
<input type="text" id="TextBox1" name="TexBox1" value="" />
<span id='error' name='error'></span>
JS:
function monitor() {
if ($('#TextBox1').val().length > 0) {
var reg = /^([a-zA-Z]+)$/;
if (!reg.test($('#TextBox1').val())) {
$('#error').html("Only letters are allowed!");
} else {
$('#error').html("");
}
} else {
$('#error').html("");
}
}
var timer = '';
$('#TextBox1').on('focus', function () {
timer = setInterval(monitor, 100);
}).on('blur', function () {
clearInterval(timer);
});
于 2013-03-23T23:34:05.183 に答える