質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

2354閲覧

jqueryを使いボタン一つで未入力箇所エラー、全角入力エラー、パスワード変数が生成できなくて困ってますが

kentros511

総合スコア122

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2015/12/17 08:49

編集2015/12/18 02:08

Jquery

1$('#button1').on('click',function(){ 2 if ($('#hoge').val() =="" || $('#hoge1').val() =="" ) { 3 $('#sms').text("未入力箇所があります"); 4 5 } 6 var mail_regex1 = new RegExp( '(?:[-!#-\'*+/-9=?A-Z^-~]+\.?(?:\.[-!#-\'*+/-9=?A-Z^-~]+)*|"(?:[!#-\[\]-~]|\\\\[\x09 -~])*")@[-!#-\'*+/-9=?A-Z^-~]+(?:\.[-!#-\'*+/-9=?A-Z^-~]+)*' ); 7 var mail_regex2 = new RegExp( '^[^\@]+\@[^\@]+$' ); 8 if( address.match( mail_regex1 ) && address.match( mail_regex2 ) ) { 9 // 全角チェック 10 if( address.match( /[^a-zA-Z0-9\!\"\#\$\%\&\'\(\)\=\~\|\-\^\\\@\[\;\:\]\,\.\/\\\<\>\?\_\`\{\+\*\} ]/ ) ) { 11 return false; } 12 // 末尾TLDチェック(co,jpなどの末尾ミスチェック用) 13 if( !address.match( /\.[a-z]+$/ ) ) { return false; } 14 return true; 15 } else { 16 return false; 17 } 18 19 var seed0 = '0123456789qwertyuiopasdfghjklzxcvbnm';//英数字 20 var pwd= ''; 21 for(var i=0;i<8;i++) { 22 var pos = Math.floor(Math.random() * seed0.length); 23 pwd += seed0[pos]; 24 } /*for*/ 25 26 $('<input>').attr({ 27 type: 'hidden', 28 id: 'input_id', 29 name:'pwd', 30 value:pwd 31 }).appendTo("form");/*''と""ひとつで変数はできなくなる"*/ 32 33 }); 34

ボタンを押すと、未入力のテキストボックスがあればエラー、
全角入力なら半角入力を促し、
OKならpwd変数を作りたいのですが ひとまとめにできません。

ひとまとめに行うにはどこを治せばよいでしょうか

パスワードは単体のときはきちんと変数でした

pwd変数がnullになってしまいます

return trueの前に入れてもnullになります return true 削除してもまだnullです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

javascript

1if( address.match( mail_regex1 ) && address.match( mail_regex2 ) ) { 2 // 全角チェック 3 if( address.match( /[^a-zA-Z0-9\!\"\#\$\%\&\'\(\)\=\~\|\-\^\\\@\[\;\:\]\,\.\/\\\<\>\?\_\`\{\+\*\} ]/ ) ) { 4 return false; 5 } 6 // 末尾TLDチェック(co,jpなどの末尾ミスチェック用) 7 if( !address.match( /\.[a-z]+$/ ) ) { 8 return false; 9 } 10 return true; // <= ここ 11} else { 12 return false; // <= ここ 13}

#インデントやブラケットの位置は揃えました
ここの条件で return しているので、下半分のロジックは通らないのでは?

投稿2015/12/17 09:43

hyper-drums-ko

総合スコア736

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kentros511

2015/12/17 10:00

解析ありがとうございます trueの前にパスワード変数を入れればいいんですかね
trick

2015/12/18 01:06

hyper-drums-ko さんも言っていますが ロジック自体が通っていません。 trueの前に入れても、下半分通りませんよ。 多分、return true;を削除すれば問題ないと思います。 今一度、ロジックの流れ方を確認した方が良いと思います。
kentros511

2015/12/18 01:41

そういうことだったんですか やってみます ありがとうございました。
kentros511

2015/12/18 01:54

return trueを削除しましたが パスワードがまだnullのままです
guest

0

ベストアンサー

javascript

1var address = "111111@test.co.jp"; 2var mail_regex1 = new RegExp( '(?:[-!#-\'*+/-9=?A-Z^-~]+\.?(?:\.[-!#-\'*+/-9=?A-Z^-~]+)*|"(?:[!#-\[\]-~]|\\\\[\x09 -~])*")@[-!#-\'*+/-9=?A-Z^-~]+(?:\.[-!#-\'*+/-9=?A-Z^-~]+)*' ); 3var mail_regex2 = new RegExp( '^[^\@]+\@[^\@]+$' ); 4if( address.match( mail_regex1 ) && address.match( mail_regex2 ) ) { 5 6 if( address.match( /[^a-zA-Z0-9\!\"\#\$\%\&\'\(\)\=\~\|\-\^\\\@\[\;\:\]\,\.\/\\\<\>\?\_\`\{\+\*\} ]/ ) ) { 7 return false; 8 } 9 10 if( !address.match( /\.[a-z]+$/ ) ) { return false; } 11} else { 12 return false; 13} 14 15 var seed0 = '0123456789qwertyuiopasdfghjklzxcvbnm'; 16 var pwd= ''; 17 for(var i=0;i<8;i++) { 18 var pos = Math.floor(Math.random() * seed0.length); 19 pwd += seed0[pos]; 20 } 21 22 alert(pwd);

上記で、pwd は表示されましたよ。
どこかの、return false;
で抜けていませんか?

投稿2015/12/18 02:34

trick

総合スコア366

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kentros511

2015/12/18 08:43

おかげで生成できました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問