JS:通过提示选择选择选项值?

时间:2016-03-20 04:10:42

标签: javascript jquery

我环顾四周,以前没有看到过这个问题。

我有一个选择框,如下所示:

<select onchange="change()">
  <option value="" selected>Option 1</option>
  <option value="30">Option 2</option>
  <option value="90">Option 3</option>
</select>

我想添加另一个选项......

  <option value="custom">Option 4</option>

...当选择(点击)时,会弹出一个警告框,要求用户输入一个数字(在30或90的情况下,不是可行的选项,如选项的值&#39; s)替换期权的价值。

<script>
function change() {
  if(value == "custom") {
    value = prompt("Please enter a new number:", "60");
  }
}
</script>

我想知道最好的方法是使用普通的旧javascript - 我必须使用jQuery。

有什么想法吗?一个例子也很棒。

2 个答案:

答案 0 :(得分:1)

您的commonjs事件是处理此事件的合适方式。这主要是用户界面(UX)设计的问题。要以提示方式执行此操作,您应该使用onchange

parseFloat

change() { var value = prompt('You\'ve chosen Other. Please enter a value', '60'); if(value) { value = parseFloat(value); // apply it to your model } else { // apply NULL to your model } } 的角度来看,我会使用UXD输入。它会自动显示已知的答案,但也允许用户输入自己的答案。这不是标准的html,所以你需要自己编写或使用jquery。但是从用户界面设计的角度来看,提示很糟糕。

答案 1 :(得分:1)

看看这段代码。我想这就是你要做的事情:

<强> HTML

<select id="optionvals" onclick="change()">
  <option value="" selected>Option 1</option>
  <option value="30">Option 2</option>
  <option value="90">Option 3</option>
  <option value="custom">Option 4</option>
</select>

<强> JS

function change() {
  var oItem = document.getElementById('optionvals');
  var value = oItem.options[oItem.selectedIndex].value;
  if(value == "custom") {
    alert("you've clicked b");
    value = prompt("Please enter a new number:", "60");
    oItem.options[oItem.selectedIndex].value = value;
    console.log(oItem.options[oItem.selectedIndex].value)
  }
}

这样做只会在选项中的选定值为custom时提示您进行更改。然后,在选择自定义值后,它会将custom选项元素的值重写为刚刚在提示中输入的值。我在分配新值后将其记录下来,以显示它正在运行。

这是一个小提琴:https://jsfiddle.net/ng7xvy05/