まあ、私はマスクされた入力を持つと良いと思いますが、これらのプラグインは一般的に内部からの正規表現で動作するため、入力値を検証したいと考えています。
このため私のソリューションは、次のようになります。
(編集、テスト済み)
メッセージ
<form id="frm">
<input type="text" class="date">
<div id="msg"></div>
<input type="submit" value="Click Me"/>
</form>
jsのためのdivを追加:
<script type="text/javascript">
function verifyDate(datevalue) {
var done = false;
if(datevalue != null || datevalue != ''){
//split the date as a tmp var
var tmp = datevalue.split('/');
//get the month and year
var month = tmp[0];
var year = tmp[1];
if(month >= 1 && month <= 12){
if(year >= 1990 && year <= 2099){
//clean the message
clean();
//finally, allow the user to pass the submit
done = true;
} else {
$('#msg').html('Year must be from 1990 - 2099.');
}
} else {
$('#msg').html('Month is invalid.');
}
}
return done;
}
function clean() {
$('#msg').html('');
}
jQuery(function($) {
//mask the input
$(".date").mask("12/2099");
$('#frm').submit(function() {
var datevalue = $('.date').val();
return verifyDate(datevalue)
});
$(".date").keyup(function(){
//get the date
var datevalue = $(this).val();
//only if the date is full like this: 'xx/xxxx' continue
if(datevalue.length == 7) {
verifyDate(datevalue);
} else {
clean();
}
});
});
</script>
希望をこれは役に立ちます。
よろしくお願いいたします。
メッセージにはうまくいきますが、私は何を望んでいるのか理解していますが、フォーム提出をブロックしなかったので、メッセージが表示されます。私は執筆を開始し、私は良い価値を書くまで私にメッセージを言う。メッセージを重要視しないために、フォームをブロックする考えはありますか? よろしくお願いいたします。 – Tomaw
私はjsfiddleで何かを試してみましょう、私はいくつかの分で戻ってくるとあなたに教えて –
これは現在、動作しており、テストされています。 –