Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 隐藏输入字段,直到选择了某个下拉值_Javascript_Jquery_Html - Fatal编程技术网

Javascript 隐藏输入字段,直到选择了某个下拉值

Javascript 隐藏输入字段,直到选择了某个下拉值,javascript,jquery,html,Javascript,Jquery,Html,我试图在选择下拉列表的某个值之前隐藏HTML中的文本字段。我非常不擅长javascript,我已经搜索了一段时间的解决方案 到目前为止,这是我可以拼凑的: Javascript代码: function newCustomerType() { var ddl = document.getElementById("customerType"); var selectedValue = ddl.options[ddl.selectedIndex].value; if (sel

我试图在选择下拉列表的某个值之前隐藏HTML中的文本字段。我非常不擅长javascript,我已经搜索了一段时间的解决方案

到目前为止,这是我可以拼凑的:

Javascript代码:

function newCustomerType()
{
    var ddl = document.getElementById("customerType");
    var selectedValue = ddl.options[ddl.selectedIndex].value;

    if (selectedValue == "new")
    {
        document.getElementById('newType').type = text;
    }
    else
    {
        document.getElementById('newType').type = hidden;
    }
}
HTML代码:

<form id="newCustomer" name="newCustomer" method="post" action="">
<table>
    <tr>
        <td>Name:</td>
    </tr>
   <tr>
        <td><input type="text" name="customerName"/></td>
    </tr>
    <tr>
        <td>Type:</td>
    </tr>
    <tr>
        <td>
            <select id="customerType" name="customerType">
                <option value="existing">existing type</option>
                <option value="new">new type:</option>
            </select>
            <input type="hidden" id="newType" name="newType"/>
        </td>
    </tr>
    <tr>
    <tr>
        <td><input type="submit" value="Register"/></td>
    </tr>
</table>
</form>

姓名:
类型:
现有类型
新类型:
这似乎不起作用。我做错了什么? 任何帮助都将不胜感激。

请查看此信息

将输入类型更改为“text”,并将样式表显示设置为none

 <input type="text" id="newType" name="newType" style="display:none"/>
请看这个

将输入类型更改为“text”,并将样式表显示设置为none

 <input type="text" id="newType" name="newType" style="display:none"/>

您需要将
type=“text”
作为字符串执行,因为文本是
未定义的
,这同样适用于
type=“hidden”
,您还可以使用
setAttribute
更改类型。当所选选项更改时,您需要调用函数。您可能会考虑“事件侦听器”。是否确实希望它是一个隐藏字段(
type=“hidden”
)?或仅从视图中隐藏(
display:none
)?showdev-仅从视图中隐藏,直到选择了选项“new type”(新类型)就足够了。Kyle-进行了您建议的更改,但无论选择了哪个下拉选项,文本字段都保持隐藏。您需要将文本作为字符串执行,因为文本是未定义的,所以
type=“hidden”
,这同样适用于
type=“hidden”
,您还可以使用
setAttribute
更改类型。当所选选项更改时,您需要调用函数。您可能会考虑“事件侦听器”。是否确实希望它是一个隐藏字段(
type=“hidden”
)?或仅从视图中隐藏(
display:none
)?showdev-仅从视图中隐藏,直到选择了选项“new type”(新类型)就足够了。Kyle-进行了您建议的更改,但无论选择了哪个下拉选项,文本字段都保持隐藏。这基本上是我的答案,但有一些建议:1)为了显示它,请将style.display设置为“”,而不是“block”。2)
var selectedValue=ddl.value
也有效,更简单。3) 与其在html中设置内联样式,不如调用newCustomerType()函数将输入初始化为hidden。这基本上是我的答案,但有几点建议:1)为了显示它,请将style.display设置为“”,而不是“block”。2)
var selectedValue=ddl.value
也有效,更简单。3) 不要在html中设置内联样式,只需调用newCustomerType()函数将输入初始化为hidden即可。