2011-07-20 13 views
0

これは私の最初の試みで、ajaxを使ってWebフォームの選択ボックスを連鎖させたものです。私はそれが正確に何のために失われています。AJAXで動的に入力された選択ボックスはフォームの投稿に投稿しません

ユーザーが1つの選択ボックスから国を選択し、ajaxリクエストが行われ、オプション(州と地域の名前を含む)が下の選択ボックスに返されます。 オプションがフォーム選択フィールドに返されている間、ユーザーが選択したオプションは、フォームの送信時に送信されません。ここで

は私が調理したコードです:

<script type="text/javascript"> 
    jQuery(document).ready(function($){ 
     $("select#state").attr("disabled","disabled"); 
     $("select#country").change(function(){ 
     $("select#state").attr("disabled","disabled"); 
     $("select#state").html("<option>Loading States...</option>"); 
     var id = $("select#country option:selected").attr('value'); 
      $.post("http://example.com/terms.php", {id:id}, function(data){ 
      $("select#state").removeAttr("disabled"); 
      $("select#state").html(data); 
      }); 
     }); 
    }); 
</script> 

あなたがここに住んで例を見ることができます(国/ Stateセクションを参照してください):

http://shredtopia.com/add/

任意のアイデアはどのようなこれを稼働させるには必要ですか?

答えて

0

は、私の知る限り見ることができ、ユーザ入力は、国カナダアルバータ状態79ビーイング

input_32 79 
input_29 alberta 

に送信されます。

<select tabindex="11" class="medium gfield_select" id="input_1_32" name="input_32"></select> 
<select tabindex="12" class="medium gfield_select" id="input_1_29" name="input_29" disabled=""></select> 

多分私はこの問題を誤解しましたか?現在および将来において、現在のセレクタに一致するすべての要素のイベントハンドラをアタッチ:

+0

状態 '#input_1_29'。 '#input_1_32'国(AJAXには入らない国)を提出しますが、州は提出しません。 –

+0

選択肢の**名前**を確認してください。**名前**は** input_32 **と** input_29 **です。** input_1_29 **と** input_1_32 **ではなく、おそらくそれが問題です。 – Josejulio

+0

名前ではなく、フィールドIDが使用されます。 –

0

は.live(eventTypeを、ハンドラ)

説明を試してみてください。

http://api.jquery.com/live/

はあなたのコードに追加して、

$('select#state').live('change', function() { 
    var id = $("select#state option:selected").attr('value'); 
    alert(id); 
}); 

〜それを試すか、これは試してみてください。

<input type="hidden" id="hiddenValue"> 

形で隠さ追加します

このようなあなたの選択#の状態を変更:

<select onchange='innerValue(this.options[this.options.selectedIndex].value)'></select> 

、その後

function innerValue(value){ 
     $("#hiddenValue").val(value) 
    } 

javascript関数を作成し、サブミットボタンをクリックし、$("#hiddenValue").val()あなたは私がこれを考えて、

$("#submitbutton").click(function(){ 
      alert($("#hiddenValue").val()) 
     }) 

を必要とするが、あります最高の解決策ではありません...

+0

単語を変更: "country" => "状態" – Monday

+0

.live()ハンドラを試しましたが、動作しません。 –

関連する問題