2011-07-14 28 views
0

私は、フォームを生成し、AJAX内のドロップダウンメニューがあります。選択したオプション

HTML:

<select id="MedicationMonth_row18" name="MedicationMonth[]" style="width: 30px;"> 
<option value="">--Select--</option> 
<option value="01">Jan</option> 
<option value="02">Feb</option> 
<option value="03">Mar</option> 
<option value="04">Apr</option> 
<option value="05">May</option> 
<option value="06">Jun</option> 
<option value="07">Jul</option> 
<option value="08">Aug</option> 
<option value="09">Sep</option> 
<option value="10">Oct</option> 
<option value="11">Nov</option> 
<option value="12">Dec</option> 
</select> 

私は隠されたdiv要素内の入力値に基づいて選択された値を追加しようとしています。

HTML

<td align="left" style="display: none;"> 
<input id="MedicationMonthValue_row18" type="text" value="03" name="MedicationMonthValue[]" style="width:30px"> 
</td> 

私が選択したオプション以下さを作成しようとするために使用していますJSコード:

var medval = $('#MedicationMonthValue_'+id).val(); 
$('#MedicationMonth_'+id).val(medval); 

はまた、次のことを試してみました:

$('#MedicationMonth_'+id).change(function() { $('#MedicationMonthValue_'+id).val($(this).val()); });`  

ときIアラートメダル、私は隠された入力フィールドから値を取得します。

私は数週間のためにこれで苦労されています。すべてのポインタが素晴らしいだろう!ありがとう!

編集:ここで私はそれがスタック上の問題を指摘して使用しています何のより完全なコードです。

$('.trSelected', grid).each(function(){ 
          var id = $(this).attr('id');         
          for(i=0;i < ($(this).children().length); i++){ 
            if (i == 0) { 
              var name = $("thead tr").children().eq(i).attr("abbr"); 
              var width = $(this).children().eq(i).children().css('width'); 
              var old_value = $(this).children().eq(i).text(); 
              var new_value = $(this).children().eq(i).html('<div style="text-align: center; width: 40px;"><input type="hidden" name="'+name+'[]" value="'+old_value+'"/>'+old_value+'</div>'); 
            } 
            else { 
              var name = $("thead tr").children().eq(i).attr("abbr"); 
              var old_value = $(this).children().eq(i).text(); 
              var width = $(this).children().eq(i).children().css('width'); 
              if (name == 'MedicationMonth') { 
             var medval = $('#MedicationMonthValue_'+id).val(); 
             $('#MedicationMonth_'+id).val(medval); 
               var new_value = $(this).children().eq(i).html('<select id="MedicationMonth_'+id+'" name="MedicationMonth[]"><option value="">--Select--</option><option value="01">Jan</option><option value="02">Feb</option><option value="03">Mar</option><option value="04">Apr</option><option value="05">May</option><option value="06">Jun</option><option value="07">Jul</option><option value="08">Aug</option><option value="09">Sep</option><option value="10">Oct</option><option value="11">Nov</option><option value="12">Dec</option></select>');               
              }                       
              else { 
                var old_value = $(this).children().eq(i).text(); 
                var new_value = $(this).children().eq(i).html('<input style="width:'+width+'" type="text" name="'+name+'[]" id="'+name+'_'+id+'" value="'+old_value+'"/>'); 
              } 
            } 
          } 
          $(this).removeClass("trSelected"); 
          $(this).addClass("trEdited"); 
          $("div.fbutton").eq(2).css('visibility', 'hidden'); 
          $("div.fbutton").eq(2).css('width', '0px'); 

          $("div.fbutton").eq(3).css('visibility', 'visible'); 
          $("div.fbutton").eq(3).css('width', 'auto'); 

          $("div.fbutton").eq(4).css('visibility', 'visible'); 
          $("div.fbutton").eq(4).css('width', 'auto');        
        }); 
+0

呼ば 'SELECT'値を設定するコードでありますか?それは、AJAX、生成された形であるので、あなたは、コードの一部は、**の後**フォームがコールバック関数で、すなわち、生成されていることを確認する必要があります。 –

+0

IDに ''行+インデックス ''が含まれていますか? –

+0

これは、ページ内にアヤックス関連のコード内で呼び出されています。さて、あなたはコールバック関数の例を提供できますか? はい、各IDが行の行+ ATTRインデックスを含みます。上記の例... row18 –

答えて

-1

すべての要素のIDは、常にページ上で一意にする必要があります。隠された入力要素またはselect要素のidを変更してください。

この

<input id="hid_MedicationMonthValue_row18" type="text" value="03" name="MedicationMonthValue[]" style="width:30px"> 

    var medval = $('#MedicationMonthValue_'+id).val(); 
    $('#hid_MedicationMonth_'+id).val(medval); 
+0

あなたは私に投票の理由を教えてもらえますか? – ShankarSangoli

+0

入力いただきありがとうございます。私はあなたに投票しませんでしたが、要素IDは既にユニークです。だから、あなたの提案は私を助けません。 –

+0

私はIDが既にユニークであり、答えに投稿されたコードが彼が元の投稿で持っていたものだったので、私はこの答えをdownvoted。その答えは、問題を解決するための有用な情報を追加しませんでした。 –

0

このコードを試してみては働いている:あなたがダウンリストあなたのドロップの小さな幅を持っているので

var medval = $('#MedicationMonthValue_'+id).val(); 
$('#MedicationMonth_'+id).val(medval); 

あなたはそれを見ることはできません。あなたの選択の幅を削除します。

<select id="MedicationMonth_row18" name="MedicationMonth[]"> 

http://jsfiddle.net/craigm/NSN62/

+0

提案されたコードをありがとう。選択コードでサイズ属性を削除しようとしましたが、選択した値が表示されません。 –

+0

それは私の答えでリンクされたフィドルで働いています。あなたのページでうまくいかない場合、他のコードで何か起こっているはずです。たぶんそれは実行の問題の順序、または何かが失敗してこのコードが実行されないようにしているのかもしれません。他のコメントで言及したAjaxコードやそのページで実行中の他のコードなど、もっとコードを投稿できる場合は、もっと助けようとすることもできますが、投稿した内容はうまくいくはずです。 –

+0

ありがとう、クレイグ...私は上記のコードを掲載しました。 –

0

例デモ:http://jsfiddle.net/WREdT/1

$(function(){ 
    $('#MedicationMonth_row18').val($('#MedicationMonthValue_row18').val()); 
}); 
+0

お勧めのコードありがとうございます。私は頭の部分に入れてみましたが、まだ喜びはありませんでした。私は何をしようとしているかを説明するために、より多くのコードを投稿しようとします。私は、FlexigridをCIと併用することで、物事がどのように相互作用するかという点で違いが生じます。 Ajaxを使用してビューにデータをプルします。 –

関連する問題