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ステートメントの「other」を「Other」に変更するだけの例の実用的なフィドルです。

デモ

coder1984が示唆しているように、jquery.show().hide()ifステートメントを使用するだけでも機能します。

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