Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:是否可以动态更改<;输入>;到a<;选择>;元素又回来了?_Javascript_Html Select_Html Input - Fatal编程技术网

JavaScript:是否可以动态更改<;输入>;到a<;选择>;元素又回来了?

JavaScript:是否可以动态更改<;输入>;到a<;选择>;元素又回来了?,javascript,html-select,html-input,Javascript,Html Select,Html Input,我正在使用“禅车”购物车。默认设置是让访问者选择国家,并动态填充“州”。如果他们选择了一个没有定义州的国家,下拉列表会显示“在下面键入您的州”,并动态显示一个输入框 如果州是为那个国家定义的,那么当前的方式是好的,但如果不是这样,那么最好让下拉列表作为文本输入显示,而不是让新的文本输入显示 因此,如果没有选择,我可以动态地将下拉列表更改为文本输入吗?如果没有启用JavaScript,它是否可以默认为文本输入 我看到这个问题: 但是我没有得到jQuery引用:(还有另一种可能的实现: 您可以在HT

我正在使用“禅车”购物车。默认设置是让访问者选择国家,并动态填充“州”。如果他们选择了一个没有定义州的国家,下拉列表会显示“在下面键入您的州”,并动态显示一个输入框

如果州是为那个国家定义的,那么当前的方式是好的,但如果不是这样,那么最好让下拉列表作为文本输入显示,而不是让新的文本输入显示

因此,如果没有选择,我可以动态地将下拉列表更改为文本输入吗?如果没有启用JavaScript,它是否可以默认为文本输入

我看到这个问题:


但是我没有得到jQuery引用:(

还有另一种可能的实现:

您可以在HTML中同时添加输入和选择元素

如果已定义状态,则使输入
display:none;
并将变量添加到选择中;否则,使选择
display:none;
,以便用户查看输入

它很容易实现、使用并为用户清除。

将文本输入放在HTML中。如果选择了一个有州的国家,则将输入替换为一个有州(或地区或省份或其他任何地方)的select元素。如果JavaScript未启用或不可用,则用户手动输入州

比如:

<select name="country" onchange="updateState(this);">
  <option value="country0">country0
  <option vlaue="country1">country1
  <option>country...
</select>
...
<input type="text" name="state">


<script>
  function updateState(element) {
    if ( /* element.value has states */) {
      // replace ths.form.state with a select
      // of appropriate states
    } else {
      // replace this.form.state with a text input
    }
  }
</script>

国家0
国家1
国家。。。
...
功能属性(元素){
如果(/*element.value具有状态*/){
//将ths.form.state替换为select
//适当国家
}否则{
//用文本输入替换this.form.state
}
}

else块是必需的,因为用户可以选择一个有州的国家,然后选择一个没有州的国家。上面有不同的选项(例如切换显示而不是替换),选择适合的选项。

jQuery
基本上是一个javascript库,所以真正的问题是,“什么是jQuery?”。我回答。不,如果这是真正的问题,那么这就是问题。我收回它。这应该是我的问题。这确实很有启发性!加载页面时不会有“显示:无”。JS很酷,但你也需要考虑CSS部分。