下記のようなソースを作りました。
<html>
<form>
<select id="TestSelect" name="drop02" onClick="alert('テスト');">
<option value="A" selected="selected">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
<option value="F">F</option>
</select>
</form>
<br>
<div onClick="alert('テスト');">onClick&alertテスト</div>
</html>
で、selectをクリックすると、selectのポップアップが表示されてその上に、alert画面が表示されます。
これをselectのポップアップを表示させずにalert画面だけを表示させたいのですが、何か良い方法はありませんでしょうか?(最終的にはfromでpostさせたいので、<ul>
<li>で選択して、valueとlabeleの値を保持して・inputのhideに値を設定して・・という面倒なことがしたくないと考えています。)
最終的には、selectをクリックしたら、ドラムみたいな選択UIを表示して選択をさせるという処理を実装したいと考えております。
方法が、ある・ない を含めて、ご指導頂ければ幸いです。
このような感じでデフォルトの動作をキャンセルできると思います。
<html> <form> <select id="TestSelect" name="drop02" > (省略) </select> </form> <br> <script> function handler(e) { console.log("テスト"); e.preventDefault(); } window.onload = function() { var e = document.getElementById("TestSelect"); e.addEventListener("mousedown", handler, false); e.addEventListener("touchstart", handler, false); } </script> </html>
touchstart は touchend でも良いかもしれません。
ドラムみたいな選択UIで option のどれかを選択するのも、<li> で選択して hidden な input に値を入れるのも大差ないと思いますがw
このような感じでデフォルトの動作をキャンセルできると思います。
<html> <form> <select id="TestSelect" name="drop02" > (省略) </select> </form> <br> <script> function handler(e) { console.log("テスト"); e.preventDefault(); } window.onload = function() { var e = document.getElementById("TestSelect"); e.addEventListener("mousedown", handler, false); e.addEventListener("touchstart", handler, false); } </script> </html>
touchstart は touchend でも良いかもしれません。
ドラムみたいな選択UIで option のどれかを選択するのも、<li> で選択して hidden な input に値を入れるのも大差ないと思いますがw
ありがとうございます。
うまく動作させるしくいができそうです。
何度もタッチしていると、クリックイベントが発生して、
クリックの時には、選択画面が表示されてしまいます。
補足情報ありましたらお教え頂ければと思います。
ありがとうございます。
2013/12/13 13:24:02うまく動作させるしくいができそうです。