2012-04-21 44 views
0

我正在创建一个小应用程序,并且在应用程序的一部分中,我创建了一个下拉选择菜单,该菜单使用数组中的值填充。使用JavaScript清空选择表单元素

我遇到的问题是,当表单被加载时,它成功地加载和填充数组值的选择选项,但问题是,当我添加另一个元素到数组并再次调用窗体时,它仍然只加载表单第一次调用时的值。

当我按下提交按钮时,如何让select选项清除其值。这里是代码的调用:

<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代码将清零选择选项,这样,当它再次被调用它可以用任何放置在数组中的新对象重新填充?

感谢您的任何反馈意见。

BTW弹出形式是指即时通讯使用下面的jQuery插件的事实:DOM Window

感谢您的任何反馈。

回答

1

普通的JavaScript:

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

的jQuery:

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

不要忘记使用$('#mySelect').remove()删除以前创建的选择标记,然后运行该功能。

0

首先,要添加一段HTML的最佳方式是将其从串写:

<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> 

当你想清楚你的选择只使用类似下面的代码:

$('#mySelect>option').remove();