アプリ版:「スタンプのみでお礼する」機能のリリースについて

JavaScriptで「半角カナは使用できません」のポップ出したい!

すみません!
緊急で助けてください。

JavaScriptの書き方がわかりません!

「半角カナは使用できません」

というポップを表示したいです。

ネットを検索したらそれらしいものはありますが、コピーしてもダメでした。
多分nameとかの問題かな。。

JavaScriptは、はじめてなのでまったくわかりません。
初歩的で申し訳ありませんが、教えてもらえる方おりましたら、お願いします。


JavaScriptを一部記載します。
..............
if(!emptyCheck (entry._fyomi,"フリガナ")) return false;
if(!emptyCheck (entry._pyomi,"フリガナ")) return false;
if(!emptyCheck (entry._fname,"ご氏名/担当者名")) return false;
if(!emptyCheck (entry._pname,"ご氏名/担当者名")) return false;
..............
..............
..............

// テキストエリアの空欄チェック
function emptyCheck(formName,msg) {
if (formName.value == "") {
alertMsg(formName,msg + "を確認してください");
return false;
}
return true;
}


こんな感じでダラダラとあります。

下記4点に対して、「半角カナは使用できません」という警告をポップで表示したい。

if(!emptyCheck (entry._fyomi,"フリガナ")) return false;
if(!emptyCheck (entry._pyomi,"フリガナ")) return false;
if(!emptyCheck (entry._fname,"ご氏名/担当者名")) return false;
if(!emptyCheck (entry._pname,"ご氏名/担当者名")) return false;

どのような記載をかけばよいでしょうか?
意味がわからなかったら、すみません!

A 回答 (8件)

#5です。

yuki4499さん、ありがとうございます。

悪意があったわけではないので、そのへんはご容赦を。

ふと回答の裏にある真意は何なんだろう?と思っただけです。
他の人の回答から教わる者として、回答には「速さ・見易さ・利便性・こだわり」など、
個性のある書き方があって、それはそれで面白いと感じてます。
相手を思う気持ちも、必要でしたね^^;

自分には足りない部分です・・・。
    • good
    • 0

補足になりますが・・・



「半角にマッチしたらエラー」はチェックとしては片手落ち。
やるなら「想定したもの以外にマッチしたら」とすべき。

とくにフリガナを前提とするならフリガナに使える文字を選定し
それ以外をすべてNGとしないと、フリガナに数字や記号や漢字が
はいってきてフリガナの体をなさない。

またア-ン的な表現は、文字コードによって半角カタカナを全て
包含しない可能性があるので、十分に注意が必要です。
(長音とか拗音とかが抜けるケースがおおい)
    • good
    • 0

>おたずねします。

なぜ評価だけなのに match つかうの?

RegExp.testのほうが処理が高速だと言いたいのだと勝手に解釈した上でお答えします。

>JavaScriptは、はじめてなのでまったくわかりません。
>初歩的で申し訳ありませんが、教えてもらえる方おりましたら、お願いします。

と、質問者が書いているので、自分で勉強したり、修正する際に検索でHITしやすく例文がいくつかあるstr.match(regexp)を使っているという理由です。

とりあえず修正版
if(form.name.value.match(/[。-゜]/))alert("半角カナは使用できません");
どうやら半角は全部全角になるようなので、使う際には。-゜を半角に直さないとダメっぽい

補足1
if文の{}の省略について
http://d.hatena.ne.jp/h_mori/20080701/1214924128

補足2
[。-゜]の意味(半角カナで検索するといいかも)
http://homepage2.nifty.com/buckeye/software/help …
[。-゜]で半角が取れる理由
http://mikeneko.creator.club.ne.jp/~lab/kcode/ha …
    • good
    • 0

おたずねします。

なぜ評価だけなのに match つかうの?

/[ア-ン、。「」゛゜] /.test( '~' ) && alert("半角カナは使用できません");
    • good
    • 0

onblurでも使ってると勝手に解釈してた。


思い込みっていうのはいけないなぁと猛省。
onkeydownでやった場合間違って半角カナを入力した時にバックスペースで消した場合にも警告が出るので、onkeyupのほうがいいのかも?

追記のさらに追記
さっきのだとカタカナ以外はとおしてたっぽいので追加
ア-ンがなぜか全角になっているので、実際に使う際は半角のア-ンに
直して使ってください。
if(form.name.value.match(/[ア-ン、。「」゛゜]/))alert("半角カナは使用できません");
    • good
    • 0

たぶんフォームのonsubmitとかinputのonblurで処理しているのでしょうけど


inputのonkeydownで半角文字が入力されたときにチェックしてやるのが
ユーザビリティが高くなると思います。
その場合はおなじメソッドでemptyチェックはしない方がいいでしょう。
(keydown時のemptyチェックはかなりウザそうなので)
    • good
    • 0

お昼御飯食べながら追記


function kanaCheck(){
if(form.name.value.match(/[ア-ン]/))alert("半角カナは使用できません");
}
formとnameは対応するものに直せばそのまま使えると思う。
    • good
    • 0

情報が部分的だからいまいち答えが曖昧になるけど


emptyCheckで空白チェックしてるならそこで半角カナも一緒にチェックすればいいんじゃないかな。
if(formName.valueが空白)
{
警告を出す
}else{
半角チェックをする
}
チェックするなら正規表現を使うといいと思う。
http://www.tohoho-web.com/js/regexp.htm


それかもう一個function書いてチェックするか。
ググってみて見つかった警告文までだしてくれるソース
http://www.openspc2.org/reibun/javascript/busine …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!