- ベストアンサー
クリックでボタンの画像を変更するjavascriptsで
通常A画像のボタンが押された場合、B画像に変更すると言う動作を行いたいのですが、 document.f1.elements['b1'].src = "A.jpg"; この部分でエラーがでます。 input type="image"のsrcを指定するにはどうしたら良いでしょうか。 --------------------- <html> <script language="javascript"> <!-- function ImageChange(){ if(document.f1.elements['b1value'].value == 0){ document.f1.elements['b1'].src = "A.jpg"; document.f1.elements['b1value'].value = 1; }else{ document.f1.elements['b1'].src = "B.gif"; document.f1.elements['b1value'].value = 0; } } //--> </script> <body> <form name="f1"> <input type="image" name="b1" src="A.gif" onclick="ImageChange()" > <input type="hidden" name="b1value" value="0"> </form> </body> </html>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
調べてみたところ、type="image"がform.elementsに入らないですね。 http://chaichan.web.infoseek.co.jp/qa6000/qa6413.htm これは知りませんでした。 elementsを使うかgetElementByIdやgetElementsByNameなどを使うかは好みで良いと思います。 function ImageChange(ipt){ if(ipt.form.elements['b1value'].value == 0){ ipt.src = "A.jpg"; ipt.form.elements['b1value'].value = 1; }else{ ipt.src = "B.gif"; ipt.form.elements['b1value'].value = 0; } } <input type="image" name="b1" src="A.gif" onclick="ImageChange(this);return false;" > 私はfunctionの中で分岐させる必要がないときは、onclick="return false;"と書いていますので。 画像の変更なら<img>の方が良いと思いますけどね。
その他の回答 (1)
- auty
- ベストアンサー率58% (284/486)
以下のコードを参考にしてみてください。 ------------------------------------------------------------ <html> <script language="javascript"> <!-- function ImageChange(){ if(document.getElementById('b1value').value == 1){ document.getElementById('b1').src = "A.gif"; document.getElementById('b1value').value = 1; }else{ document.getElementById('b1').src = "B.gif"; document.getElementById('b1value').value = 0; } return false; } //--> </script> <body> <form name="f1"> <input type="image" id="b1" name="b1" src="A.gif" onclick="return ImageChange()"> <input type="hidden" id="b1value" name="b1value" value="0"> </form> </body> </html>
お礼
回答ありがとうございます。 getElementByIdとかgetElementsByName等を使わないと 指定できないんですね・・・。 参考にさせて頂きます。ありがとうございました。