Javascript 选择选项不获取该值

Javascript 选择选项不获取该值,javascript,html,html-select,Javascript,Html,Html Select,我有一个下拉列表,例如职业,当用户单击选项Other时,会出现一个文本框,用户必须指定他的职业。用户选择其他人并输入其职业的部分是有效的,它保存了用户输入的内容,但当用户仅从下拉列表中选择或选择时,在我提交表单时不会记录该值 如何从选择选项中获取值?因为只有当用户选择Other并输入他的职业时,我才能得到值。这是我的密码 函数检查职业值{ var元素=document.getElementById'occulation'; ifval==‘其他’ element.style.display='

我有一个下拉列表,例如职业,当用户单击选项Other时,会出现一个文本框,用户必须指定他的职业。用户选择其他人并输入其职业的部分是有效的,它保存了用户输入的内容,但当用户仅从下拉列表中选择或选择时,在我提交表单时不会记录该值

如何从选择选项中获取值?因为只有当用户选择Other并输入他的职业时,我才能得到值。这是我的密码

函数检查职业值{ var元素=document.getElementById'occulation'; ifval==‘其他’ element.style.display='block'; 其他的 element.style.display='none'; } 选择职业 律师 护士 律师 教师 程序员 会计 另外 元素的内容不会自动更改其值。必须指定值属性

函数检查职业值{ var元素=document.getElementById'occulation'; ifval==‘其他’ element.style.display='block'; 其他的 element.style.display='none'; } 选择职业 律师 护士 律师 教师 程序员 会计 另外
我认为您可能需要在选项标记中指定一些值。 试试这个:

选择职业 律师 护士 律师 教师 程序员 会计 另外
您已经为这两个字段设置了name=职业。尝试使用两个不同的名称

<select class="form-control" name="occupation" onchange='CheckOccupation(this.value);'>

<input type="text" name="occupation" id="occupation" class="form-control" placeholder="please specify your occupation..." style='display:none;'/>

为选项字段设置值属性,并为这两个字段提供不同的名称

JS

HTML


看到了吗?我为你创造了一个plunker:

尽量不要使用var元素。

这应该可以:

功能检查职业选择类型{ 如果选择了类型==“其他”{ document.getElementById'occulation'.style.display='block'; }否则{ document.getElementById'occulation'。style.display='none'; } } 选择职业 律师 护士 教师 程序员 会计 另外
问题是您将选择职业命名为选择职业,然后将输入职业命名为选择职业

它们无法以相同的名称发送,请尝试更改其中任何一个

尝试用event替换this.value作为传递给CheckOccupation的参数;包括期权要素的价值属性;将职业时的名称值更改为其他;同时删除具有.innerHTML文件的副本

函数CheckOccupationevent{ var val=event.target.value; var element=document.getelementbyidoccuption; 如果val==其他 element.style.display=块; 其他的 element.style.display=无; 控制台logval } 选择职业 律师 护士 教师 程序员 会计 另外
有问题的html中的选项元素没有设置value属性?顺便说一句,您对两个元素使用了相同的名称。我也试过护士,但还是一样@guest271314你是什么意思@Alexchar在这里您可以找到您的问题的答案:我以前也做过,但它仍然没有解决我的问题。我以前做过,但仍然是一样的。您仍然必须在表单提交中包含输入值。你不能给它相同的名称属性。好的,我会试试。谢谢你提交答案,我的问题解决了。我希望我能给每个给出正确答案的人打分,但我的特权是有限的。这真管用!谢谢你的回答,我的问题解决了。我希望我能给每个给出正确答案的人打分,但我的特权是有限的。
function CheckOccupation(val){
 var element=document.getElementById('occupation');
 if(val==='Other')
   element.style.display='block';
 else  
   element.style.display='none';
}
<select class="form-control" name="occupation1" onchange='CheckOccupation(this.value);'>
    <option> Select Occupation</option>
    <option value="Lawyer"> Lawyer </option>
    <option value="Nurse"> Nurse </option>
    <option value="Lawyer"> Lawyer </option>
    <option value="Teacher"> Teacher </option>
    <option value="Programmer"> Programmer </option>
    <option value="Accountant"> Accountant </option>
    <option value="Other"> Other </option>
</select>

<input type="text" name="occupation2" id="occupation" class="form-control" placeholder="please specify your occupation..." style='display:none;'/>