2012-04-21 19 views
0

私は小さなアプリケーションを作成しています。アプリケーションの1つの部分に、配列の値が入力されたドロップダウン選択メニューを作成しています。JavaScriptを使用して選択フォーム要素を空にする

問題は、フォームがロードされたときに配列オプションで選択オプションが読み込まれて正常に読み込まれますが、配列に別の要素を追加してフォームを再度呼び出すと、フォームが最初に呼び出されたときの値のみをロードします。

[送信]ボタンを押したときに、選択肢の値をクリアする方法を教えてください。

<div class="popupForm" id="newRelate_Form" style="display:none"> 
    <form name="relationFormOne"> 
     <script type="text/javascript" language="javascript"> 
      var $selectFrom = $('<select id="mySelect">'); 
      $($selectFrom).attr('id', 'objFrom'); 
      for (var i = 0; i < objectArray.length; i++) 
      { 
       var value = objectArray[i].Name; 
       $('<option>').val(value).text(value).appendTo($selectFrom); 
      } 
      $selectFrom.appendTo($("#from_Object")); 
      var fromVal = document.getElementById("objFrom"); 
     </script> 
     <button class="closeDOMWindow" onclick="createObj(fromVal.options[fromVal.selectedIndex].text)">Create</button> 
    </form> 

値は、関数createObj(に渡されます):

function createObj() 
{ 
    /* 
     DO THE WORK NEEDED 
    */ 
} 

今それが再び呼び出されたときにようにjavascriptのコードが選択オプションをオフになるのかここで呼ばれているコードがあります配列に配置された新しいオブジェクトで再生成できますか?

フィードバックありがとうございます。すべてのフィードバックのためのDOM Window

ありがとう:

ところでポップアップフォームは、イムは、次のjQueryプラグインを使用しているという事実を指します。

答えて

1

平野のJavaScript:

var ob = document.getElementById('selectID'); 
while (ob.hasChildNodes()) 
    ob.removeChild(ob.firstChild); 

jQueryのは:

$('#mySelect').children().remove() 
0

$('#mySelect').remove()を使用して、以前に作成したselectタグを削除してから、機能を実行することを忘れないでください。あなただけの、次のようなコードを使用し、あなたの選択をクリアしたい場合は

<form id="relationFormOne"> 

<script type="text/javascript" language="javascript"> 
$(function(){ 
var objectArray = [{Name:'1'},{Name:'2'},{Name:'3'}]; 
var selectHtml = []; 

$('#relationFormOne').append($('<select name="mySelect">')); 

$(objectArray).each(function(ix, val){ 
    selectHtml.push('<option>'+val.Name+'</option>'); 
}); 
$('select[name=mySelect]').html(selectHtml.join('')); 
}); 
</script> 

<input type="button" value="clear" onclick="$('select[name=mySelect]>option').remove()" /> 
</form> 

0

まず、HTMLの一片を追加するための最良の方法は、文字列から、それを書くことです

$('#mySelect>option').remove(); 
関連する問題