ユーザー名、パスワードなどの一連のフィールドを含むフォームの作成に取り組んでいます。送信ボタンがクリックされたときに検証を行いたいです。
境界線の色からアラートを取得しようとしています。すべてのフィールドが有効です。境界線を緑色に変更する必要があります。エラーがある場合は、赤色に変更する必要があります。
誰でも私の問題に関して何か考えがあります
誰か提案があれば??
ユーザー名、パスワードなどの一連のフィールドを含むフォームの作成に取り組んでいます。送信ボタンがクリックされたときに検証を行いたいです。
境界線の色からアラートを取得しようとしています。すべてのフィールドが有効です。境界線を緑色に変更する必要があります。エラーがある場合は、赤色に変更する必要があります。
誰でも私の問題に関して何か考えがあります
誰か提案があれば??
jqueryプラグインを使用できます....ここにあります。JQuery フォーム検証のカスタム例
jQuery 検証プラグインを使用: http://docs.jquery.com/Plugins/Validation
このプラグインでは、フィールドの検証ルールを定義する必要があります。特定の検証ルールの特定のフィールドのエラー メッセージを設定することもできます。
このプラグインは、有効なフィールドと無効なフィールドにクラスを追加します。
そのクラスの css を指定する必要があります。
例えば:
$(document).ready(function(){
$(".my_form").validate({
rules:{ // validation rules
email_address: {
required:true,
email: true
},
password:{
minlength: 6
},
confirm_password: {
equalTo:"#password"
}
},
messages: {
email_address: {
required: "Please enter email address",
email: "Please enter valid email address",
},
/*
likewise you can define messages for different field
for different rule.
*/
}
errorClass: "signup_error",
/*This is error class that will be applied to
invalid element. Use this class to style border.
You can give any class name.*/
});
});
送信ボタンをクリックし、フィールドが無効な場合、プラグインは として指定した要素にクラスを追加します。errorClass
フィールドに有効な値を入力すると、プラグインはこのクラスを削除し'valid'
、デフォルトでクラスを追加します。
これら 2 つのクラスを使用して、単純な要素を使用して有効な要素と無効な要素のスタイルを設定できます。
.valid {
border-color:"green"
}
.signup_error {
border-color:"red"
}
これで問題が解決することを願っています。
Js私は行く方法です。jQuery を検索すると、非常に優れた jQuery バリデーターを見つけることができます。
シンプルなバリデーターをカスタムビルドするには、次のようにします
<form class="validator">
<input type="text" name="my-input-1" data-validator="integer"/>
<input type="text" name="my-input-2" data-validator="email"/>
....
</form>
<script>
$("form.validator").submit(evt, function() {
var errors = 0;
$(this).find('[data-validator]').each(function(e, i) {
var value = $(this).value;
switch($(this).data('validator')) {
case 'integer':
if (!(parseFloat(value) == parseInt(value)) && !isNaN(value)) {
$(this).css({'border-color': '#FF0000'});
errors++;
} else
$(this).css({'border-color': '#000000'});
break;
case 'email':
if (..... // regex validate email ...) {
$(this).css({'border-color': '#FF0000'});
errors++;
} else
$(this).css({'border-color': '#000000'});
break;
}
});
if (errors > 0) {
// If you want to prevent default event execution no matter what
evt.preventDefault();
// If you want you other attached events to NOT run
evt.stopPropagation();
// signal failure
return false;
}
// All is well, go on
return true;
});
</script>
もちろん、すべてのバリデーターの関数を作成することは常に良い習慣であり、jQuery ウィジェット (jQuery Widget Factory を使用することをお勧めします) で全体をラップすることをお勧めします。これにより、将来的に機能を拡張し、変更に柔軟に対応できます。
DOJO ライブラリを使用してフォーム フィールドを検証できます。実装は簡単です。
以下は道場を実装するためのチュートリアルです
http://dojotoolkit.org/documentation/tutorials/1.6/validation/
そして、これはあなたが見ることができる実際の例です...
http://dojotoolkit.org/documentation/tutorials/1.6/validation/demo/dijitcheck.html
ニーズのサーバー側検証の例。試してみてください。
<?php
error_reporting(0);
$green = "border: 3px solid green";
$red="border: 3px solid red";
$nothing="";
$color = array ("text1"=>$nothing , "text2"=>$nothing) ;
if ( $_POST['submit'] ) {
if($_POST['text1']) {
$color['text1'] = $green;
}
else $color['text1'] = $red;
if($_POST['text2'] ) {
$color['text2'] = $green;
}
else $color['text2'] = $red;
}
?>
<form method="post">
<input type="text" name="text1" style="<?php echo $color ['text1']?>" value="<?php echo $_POST['text1']?>">
<input type="text" name="text2" style="<?php echo $color ['text2']?>" value="<?php echo $_POST['text2']?>">
<input type="submit" name="submit">
</form>
私のアドバイスはjQueryを使用します
最初に複数の入力を作成して、それらにクラスを与えることを試みます
html:
<input type="text" class="validate" value="asdf" />
<input type="text" class="validate" value="1234" />
<input type="text" class="validate" value="asd123" />
<input type="text" class="validate" value="£#$&" />
<input type="text" class="validate" value=" " />
次に、以下のコードを使用して、それがどのように機能するかを確認します
jQuery:
// Validate Function
function validate(element) {
var obj = $(element);
if (obj.val().trim() != "") {
// Not empty
if (!/^[a-zA-Z0-9_ ]{1,10}$/.test(obj.val())) {
// Invalid
obj.css('border-color', '#FAC3C3');
if (!obj.next().hasClass('error'))
{ obj.after('<span class="error">Please use letters or numbers only and not more than 10 characters!</span>'); }
else
{ obj.next().text('Please use letters or numbers only and not more than 10 characters!'); }
} else {
// Valid
obj.css('border-color', 'lightgreen');
if (obj.next().hasClass('error'))
{ obj.next().remove(); }
}
} else {
// Empty
obj.css('border-color', '#FAC3C3');
if (obj.next().hasClass('error'))
{ obj.next().text('This field cannot be empty!'); }
else
{ obj.after('<span class="error error-keyup-1">This field cannot be empty!</span>'); }
}
}
$(document).ready(function() {
// Each
$('.validate').each(function() {
// Validate
validate(this);
// Key up
$(this).keyup(function() {
// Validate
validate(this);
});
});
});
jsfiddle: http: //jsfiddle.net/BerkerYuceer/nh2Ja/
一般的なJavaScriptの目的のためだけに検証ライブラリを作成しました。ユニットテストもされています!必要なものは何でも簡単にオーバーライドできます: https://github.com/parris/iz
無効なフィールドを強調表示する限り、そのフィールドのスタイルを変更するか、クラスを追加するだけです。以下の例は、入力の背景色を変更し、メッセージを追加するだけです。
作業例: http://jsfiddle.net/soparrissays/4BrNu/1/
$(function() {
var message = $("#message"),
field = $("#field");
$("#the-form").submit(function(event) {
if (iz(field.val()).alphaNumeric().not().email().valid){
message.text("Yay! AlphaNumeric and not an email address");
field.attr("style","background:green;");
} else {
message.text("OH no :(, it must be alphanumeric and not an email address");
field.attr("style","background:red;");
}
return false;
});
});
バリデーターは iz と呼ばれます。単純に検証を連鎖させ、すべてが合格したかどうか、または「エラー」オブジェクトをチェックすると詳細が表示されます。さらに、独自のエラー メッセージを指定できます。github のドキュメントを確認してください。
ここで何が起こっているかというと、ページの準備ができたら、submit イベントのクリック ハンドラーを設定しています。return false;
送信コールバックの一番下に、フォームが送信されないようにします。return true;
フォームが続行される場合。return false の代わりにあなたもできますevent.preventDefault();
が、私は一貫性のために return 構文を好みます。複数のフォーム要素を持つ現実の世界では、次のようなことを行うことができます (疑似コード):
var passed = true;
if (check field 1 is false)
...
if (check field 2 is false)
...
if (check field n is false)
passed = false
style and add message
if passed
return true
else
return false
if ステートメントは検証ルールをチェックし、それに応じて DOM を変更します。このようにすることで、成功したフィールドと失敗したすべてのフィールドの完全なリストと、何が正しくないかを完全に説明することができます。
私は過去にこのプラグインを使用したことがあり、実装が非常に簡単になり、優れたドキュメントと例があります。
$("#btn").click(function(){
// Check all of them
if( $.trim($("#file").val()) == ""){
$("#file").css("border","1px solid #ff5555");
}else{
$("#file").css("border","1px solid #cccccc");
if( $.trim($("#showboxResimBaslik").val()) == ""){
$("#showboxResimBaslik").css("border","1px solid #ff5555");
}else{
$("#showboxResimBaslik").css("border","1px solid #cccccc");
if( $.trim($("#showboxResimEtiket").val()) == ""){
$("#showboxResimEtiket").css("border","1px solid #ff5555");
}else{
if($.trim($("#showboxResimSehir").val()) == ""){
$("#showboxResimSehir").css("border","1px solid #ff5555");
}else{
$("#showboxResimSehir").css("border","1px solid #cccccc");
$("#resimYukleForm").removeAttr("onSubmit");
$('#resimYukleForm').bind('submit', form_submit);
}
}
}
}
});
これは、jQueryでこれを行うための短く正確で簡潔な方法です。
HTML:
<form id="myform" name="form" action="http://www.google.com">
<div class="line"><label>Your Username</label><input class="req" type="text" /></div>
<div class="line"><label>Your Password</label><input class="req" type="password" /></div>
<div class="line"><label>Your Website</label><input class="req" type="text" /></div>
<div class="line"><label>Your Message</label><textarea class="req"></textarea></div>
<div class="line"><input type="submit" id="sub"></submit>
</form>
CSS:
.line{padding-top:10px;}
.inline input{padding-left: 20px;}
label{float:left;width:120px;}
jQuery:
$(function() {
function validateform() {
var valid = true;
$(".req").css("border","1px solid green");
$(".req").each(function() {
if($(this).val() == "" || $(this).val().replace(/\s/g, '').length == 0) {
$(this).css("border","1px solid red");
valid = false;
}
});
return valid;
}
$("#sub").click(function() {
$('#myform').submit(validateform);
$('#myform').submit();
});
});
おそらく最も簡単な方法は、この JavaScript を使用することです: http://livevalidation.com/examples#exampleComposite
あなたの説明に一番合っていると思います。
こんにちは、フォームのフィールドで html5 の「required」と「pattern」を使用できます。間違っている場合は赤い枠が表示され、正しい場合は緑の枠が表示されます。色が希望どおりでない場合は、:valid および :invalid 入力フィールドのスタイルを設定することもできます。私はそれをテストしたことはありませんが、何もしないよりはましです ;)
以下のリンクを確認してください。ここでは、空のフィールドのみをチェックしました。フィールドが空の場合は、入力フィールドの境界線の色を変更する入力フィールド ID を変更しました。 http://jsfiddle.net/techprasad/jBG7L/2/
利用した
$("#myb").click(function(){
これはボタンクリックイベントですが、送信イベントを使用できます。
最初に JavaScript を学びます。js の基本的な知識があり、ロジックを知る必要がある場合は、読み進めてください。まず、フォーム送信時に関数を実行するためのイベント ハンドラーが必要です。最も簡単な方法は (より良い方法はありますが)
<form action="som.php" onsubmit="functionName()">
フォームはこちら
</form>
これにより、functionname という関数がトリガーされます。関数名関数で入力フィールドにアクセスし、正規表現を使用して検証します
function functionName()
{
//verification code
if(verified)
{
//code to change border to green
}
}
入力フィールドを取得して検証する必要があります。その方法がわからない場合は、Javascript の本をいくつか入手して ください 値が入力されたらすぐに検証する必要がある場合は、入力フィールドで onchange イベントを使用します