按钮,而不是选择(Buttons instead of select)

2019-09-17 14:27发布

我工作的一个网站,我想用图标来选择出行方式,我有一个工作的功能,但它只是一个选择的输入工作。 是否有修改它与按钮使用的方法是什么?

提前致谢!

功能:

function calcRoute() {
  var selectedMode = document.getElementById("mode").value;
  var request = {
      origin: thuis,
      destination: kabk,
      // Note that Javascript allows us to access the constant
      // using square brackets and a string value as its
      // "property."
      travelMode: google.maps.TravelMode[selectedMode]
  };
  directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      directionsDisplay.setDirections(response);
    }
  });

HTML - 选择输入

<select id="mode" onchange="calcRoute();">
    <option value="DRIVING">Driving</option>
    <option value="WALKING">Walking</option>
</select>

HTML - 按钮输入(?)

<form id="mode">
    <input type="button" onchange="calcRoute();" value="DRIVING">
    <input type="button" onchange="calcRoute();" value="WALKING">
</form>

Answer 1:

有没有onchange的按键事件。 使用onclick事件,而不是

<form id="mode">
    <input type="button" onclick="calcRoute(this);" value="DRIVING" />
    <input type="button" onclick="calcRoute(this);" value="WALKING" />
</form>

编辑和你要调整你的calcRoute功能

function calcRoute() {
   var selectedMode = document.getElementById("mode").value;
   //...

function calcRoute(btn) {
    var selectedMode = btn.value;
    // ...


Answer 2:

function calcRoute(ev) {
    var ev = ev || window.event,
        btn = (ev.target || ev.srcElement);
    var selectedMode = btn.value;  //"this" will return the element in the demo
    var request = {
        origin: thuis,


<form id="mode">
            <!--Use onClick-->
    <input type="button" onclick="calcRoute(ev);" value="DRIVING" />
    <input type="button" onclick="calcRoute(ev);" value="WALKING" />
</form>

:) 工作演示: http://jsfiddle.net/DerekL/T7NrF/



文章来源: Buttons instead of select