
HTML、Javascriptでトグルボタンを作成する方法について質問です。
自分が考えた動作としては
ひとつのform内に複数のボタンを設置 初期値(表示)は"有効"
ボタンを押すと値(表示)が"無効"に変わる
もう一度押すと"有効"に変わる
これの繰り返しがしたい
というものです。
書いたコードは
<javascript部分>
function dspmsg(btnObject){
status = btnObject.value;
if(status=="有効"){
document.btnObject.value = "無効";
}else{
document.btnObject.value = "有効";
}
}
<html部分>
<form>
<input type="button" name="yuko_FLG1" value="有効" onclick="dspmsg(this)" />
<input type="button" name="yuko_FLG2" value="有効" onclick="dspmsg(this)" />
・・・・・
</form>
当然のことながら動きませんでした。
自分でも間違っていることはわかるのですが、修正の仕方がわかりません。
よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
既に解決しているし、要件としては全く不要なんだろうけど趣味で。
HTMLのフォームの部品でトグルするのってcheckbox。
なのでcheckboxをトグルボタンする方法を。
(checkboxは非表示のまま生きているので送信すれば'有効'の時はvalueの値、value値省略なら'on'を送信します)
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function(){
$('input[name^="yuko_FLG"]').each(function(){
$(this).hide();
$('<input type="button" />').insertAfter($(this)).click(function(){
if($(this).prev().get(0).checked) {
$(this).val( '無効' );
$(this).prev().get(0).checked = false;
} else {
$(this).val( '有効' );
$(this).prev().get(0).checked = true;
}
});
$(this).next().val( ($(this).get(0).checked)?'有効':'無効' );
});
});
</script>
<form>
<input type="checkbox" name="yuko_FLG1" />
<input type="checkbox" name="yuko_FLG2" checked="checked" />
<input type="submit">
</form>
No.2
- 回答日時:
表示を変えればよいだけなら、
function dspmsg(elm) {
elm.value = elm.value=='有効'?'無効':'有効';
}
みたいなのでは?
1番の方と同じく三項演算子を教えていただいてありがとうございます!
すばらしく単純でしたよね…
おかげさまで思ったとおりの実装ができました
ありがとうございました
No.1
- 回答日時:
単純な話・・・
>document.btnObject.value = "無効";
ではなく
btnObject.value = "無効";
で、いけます。名前をわたしているのではなくオブジェクトを渡しているので。
ちなみに三項演算子の方が楽そうですね
<script>
function dspmsg(btnObject){
btnObject.value = btnObject.value=="有効"?"無効":"有効";
}
</script>
<form>
<input type="button" name="yuko_FLG1" value="有効" onclick="dspmsg(this)" />
<input type="button" name="yuko_FLG2" value="有効" onclick="dspmsg(this)" />
</form>
そうですよね…自分でもなんて単純なことがわからないんだと泣きました
三項演算子のことがすっかり頭になかったので、すごく簡単にできてうれしいです!
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptによる自動計算フォ...
-
Kintone(キントーン)でドロップ...
-
selectboxのoptionタグのvalue...
-
テキストエリア内容からチェッ...
-
関数名などの固有名詞(?)を...
-
複数のsubmitボタンで押された...
-
ラジオボタンとテキストを同時...
-
jsで、配列内の文章を改行する...
-
<input>の選択肢をプルダウンメ...
-
Selectボックスの幅を自動で広...
-
javaScriptの変数をJavaの変数...
-
JavaScriptのfileオブジェクト...
-
<JavaScript>tableタグを入力不...
-
ASP.NETでNAME属性を固定にしたい
-
RegularExpressionValidatorの...
-
クリックされた罫表セルの行番...
-
同じ名前のセレクトがある場合...
-
onchangeイベントを強制的に発...
-
プルダウンで選択された値を別...
-
二次元配列に数字をランダムに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
hiddenのvalueの値を変えたい
-
UART通信の取説で,left floati...
-
sessionStorageを調べています。
-
javascriptでhiddenに二次元配...
-
eval()を使わずに数値を取得し...
-
Kintone(キントーン)でドロップ...
-
3桁区切りのカンマをつけたい...
-
selectboxのoptionタグのvalue...
-
自動的に連番生成したURLにリン...
-
子から親へチェックボックスの...
-
どのボタンがクリックされたの...
-
フォームで個数の選択をプルダ...
-
name属性が同じフォームが複数...
-
VB.NET DateTimeの型について
-
JAVASCRIPTの日数計算について
-
プルダウン選択時、既に入力済...
-
Javascriptのグローバル変数に...
-
セレクトボックスの初期選択状...
-
JAVASCRIPTで、ボタンを押した...
おすすめ情報