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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

2373閲覧

条件を果たさないとラジオボタンの値を送信したくない場合

rainbowsix

総合スコア102

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/11/07 08:01

form

1<form> 2 <input type="radio" name="radiobtn" id="A" checked/>A 3 <input type="radio" name="radiobtn" id="B"/>B 4 <input type="text" id="c"/> 5</form>

<input type="text" />に入力がない場合は
ラジオボタンのチェック内容を送りたくない場合は
submit()の中身を

if($("#c").val()=""){
$("input").attr("disabled","disabled");
}
的な処理でいいですか?
他にいい方法があれば教えてください。

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

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

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

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

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

guest

回答3

0

ユーザーはチェックしたとおもって送っているのに実際には送られないという
UIとして考え方がおかしい

  • cに値がない場合はアラートをだして送れないようにする
  • 受け取った側でcが値がなかった場合radiobtnを無視し、必要ならエラーを表示する

のどちらかにスべきです。
仮に、onsubmit処理でdisableを設定した場合、
戻るボタンで戻ってきたときにradiobtnが選択できない状態になることも
考慮したほうがよいです。(もちろん戻るをさせないという考え方もあります)

投稿2016/11/07 08:38

yambejp

総合スコア114814

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

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

rainbowsix

2016/11/08 02:34

片方のみ送ってしまうとエラーを起こすシステムだったので(汗) 回答ありがとうございました。
rainbowsix

2016/11/08 02:36

戻った場合はdisable解除するようにしました。ありがとうございます。
guest

0

ベストアンサー

javascript

1if($("#c").val()=""){ 2$("input").attr("disabled","disabled"); 3}

比較演算子が
if($("#c").val()==""){
ではありますが、disabled属性を付与しているのでformデータとしては送られなくなるのでここはOKだと思います。

でも入力していなければ送らせないという条件でif($("#c").val()==""){ ならalert出して入力促してreturn falseするのも手です。

投稿2016/11/07 08:31

hiim

総合スコア1689

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

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

rainbowsix

2016/11/08 02:28

ベストアンサーとさせていただきます。ありがとうございます。
guest

0

あと比較演算は == または === などですよ。

JSでその条件でやるのであれば初期状態ではラジオボタンそのものをソースに書かず、

html

1<span id="radioarea"></span>

みたいに入力エリアだけ作っておき、

javascript

1$('input[type="text"]').on('input change blur', function() { 2 if($(this).val != '') { 3 var radio_template = '' + 4 '<input type="radio" name="radiobtn" id="A" checked/>A' + 5 '<input type="radio" name="radiobtn" id="B"/>B'; 6 $('#radioarea').html(radio_template); 7 } 8});

のような形ではいかがですか?

投稿2016/11/07 08:14

編集2016/11/07 08:39
takepieee

総合スコア686

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

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

hiim

2016/11/07 08:35

横からすいません、 > disabledは「入力不可」なだけで送られます。 readonlyはそうですが、disbledは送られなかったのでは??
takepieee

2016/11/07 08:37

すみません、その通りです。修正しておきます。
rainbowsix

2016/11/08 02:31

なるほどですね。今回は最初から<input type="radio"~を表示しないといけなかったので 今後参考にします。回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問