1

我正在处理一个简单的 php 联系表单,并努力在下拉列表中选择“其他”选项以在选择时显示文本字段选项。表单包含在页面上<?php require_once('includes/contact_form.php'); ?>,页脚也是一个包含(页脚是我添加 JS 的位置)。

但这只是行不通...

这是表格:

<label>How did you hear about us?</label>
<select name="how" class="selectfield" id="how">
  <option value="">Please Select...</option>
  <option value="Advertisement">Advertisement</option>
  <option value="Care at Home Today">Care at Home Today</option>
  <option value="Email-Newsletter">Email/Newsletter</option>
  <option value="Facebook">Facebook</option>
  <option value="Family-Friend">Family or Friend</option>
  <option value="Magazine">Magazine Article</option>
  <option value="Twitter">Twitter</option>
  <option value="Website-Search Engine">Website/Search Engine</option>
  <option value="Other">Other</option>
</select>
<input type='text' id="other" class="hidden" />

<input name="contactus" type="submit" class="submit" id="contactus" value="Submit" />
</form>

这是JS

$('#how').change(function(){
    var selected_item = $(this).val()
    if(selected_item == "other"){
        $('#other').val("").removeClass('hidden');
    }else{
        $('#other').val(selected_item).addClass('hidden');
    }
});
4

3 回答 3

1

尝试:

$('#how').change(function(){
var selected_item = $(this).val()
if(selected_item == "Other"){ // 'Other' 
    $('#other').val('').show(); //show textbox if Other is selected
}else{
    $('#other').hide(); //Hide textbox if anything else is selected
}
});
于 2012-11-08T15:48:29.643 回答
1

您的问题在于您的字符串比较,它应该是:

 if(selected_item == "Other"){

带大写O,经过测试

于 2012-11-08T15:53:13.517 回答
1

不确定这是否是问题中的拼写错误,但您的下拉值是“其他”,并且在您的 js 中您正在测试“其他”。所以存在不匹配。可能是你的问题

这是您示例的一个工作小提琴,只是在您的 if 语句中将“其他”更改为“其他”。

演示

正如 coder1984 所建议的那样,只需在 if 语句中使用 jquery.show().hide()也可以。

if(selected_item == "Other"){
    $('#other').val("").show()
}else{
    $('#other').val(selected_item).hide()
}
于 2012-11-08T15:53:50.327 回答