• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォームの入力内容の後ろに文字を追加したい)

フォームの入力内容に文字を追加できる方法

このQ&Aのポイント
  • KENTWEBのClipMailを使用してフォームメールを作成していますが、郵便番号の入力形式を変更したい場合について質問です。
  • 現在は<input name="zip" type="text">-<input name="zip" type="text">という形式で受け取ることができますが、"000-0000"の形式で受け取りたいと思っています。
  • 一つの解決方法として、ユーザーにハイフンを入力してもらう方法がありますが、他にも間に任意の文字を挿入する方法があるか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ryu_chan
  • ベストアンサー率37% (69/186)
回答No.2

お使いのスクリプトでは、質問者さんの例から、同じname属性の場合、単純に連結しているように思えます。 そこで、間にvalueが ”-” のhidden属性を入れてみるのはいかがでしょうか? 所望の結果は得られますでしょうか? 数値入力制限というJavaScriptもおまけで付けてみました^^ <script type="text/javascript"> function check_zip(zip_input, digits) { var code = zip_input.value; var len = code.length; if ( !code.charAt(len - 1).match(/^\d$/) || len > digits ) { code = zip_input.value = code.substr(0, len - 1); } if ( digits == 3 && code.length == 3 ) { document.getElementsByName("zip")[2].focus(); } } </script> <input name="zip" type="text" onkeyup="check_zip(this, 3)"><input type="hidden" name="zip" value="-">-<input name="zip" type="text" onkeyup="check_zip(this, 4)">

yako_k
質問者

お礼

回答ありがとうございます。 無事にひとつにつなげることができました。 javascriptもありがとうございます。使わせていただきます。 それでご厚意に甘えて、もうひとつ教えていただけませんでしょうか。 上記方法で入力した場合、結果が「000 - 0000」とハイホンの左右に半角スペースが空いてしまいます。 できればこちらをとりたいのですが、可能でしょうか。 もしご存知でしたら教えてください。 よろしくお願いします!

その他の回答 (2)

  • ryu_chan
  • ベストアンサー率37% (69/186)
回答No.3

ハイフンの前後に半角スペースが入るとのことですが、これはそのスクリプトの実装がそうしているからだと思います。 スクリプトの中身を少し見てみましたが、おそらく以下の部分を変更すればいいのではないかと思います。 lib/preview.plの111行目の $in{$key} =~ s/\0/ /g;    ↓   ↓ $in{$key} =~ s/\0//g; に変更。

yako_k
質問者

お礼

再度のご回答をありがとうございます。 お礼が遅くなり、申し訳ありません。 考えていただいた方法ではうまくいかなかったのですが、lib/preview.plの空白をひとつずつ削っていってみようと思います。 今回は本当にありがとうございました!

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

nameは同じものを使うと、処理方法にもよりますが上書きされたり連結したりします。  通常は、7桁をそのまま入力してもらって、3桁と4桁に分けるほうがよいでしょう。

yako_k
質問者

お礼

回答ありがとうございます。 7桁のものを分けるということもできるのですね! 今回は別の方法を採用しましたが、次の機会に調べたいと思います。 ありがとうございました。

関連するQ&A

専門家に質問してみよう