2013-05-19 38 views
1

是否有可能編寫一個JavaScript函數刪除下拉時,它是空白的?使用Javascript或Jquery刪除下拉時,它是空白

<form name="myform" method="post" enctype="multipart/form-data" action="" id="myform"> 
<div> 
<label id="question1">1) Draw recognizable shapes</label> 
     <br /> 
<input type="radio" value="Yes" id="question1_0" name="question1_0" /> 
     Yes 
<input type="radio" value="No" id="question1_1" name="question1_1" /> 
     No 
</div> 
<div> 
<label id="question2">2) Competently cut paper </label> 
     <br /> 
<input type="radio" value="Yes" id="question2_0" name="question2_0" /> 
     Yes 
<input type="radio" value="No" id="question2_1" name="question2_1" /> 
     No 
</div> 
<div> 
<label id="question3">3) Hold a pencil</label> 
     <br /> 
<input type="radio" value="Yes" id="question3_0" name="question3_0" /> 
     Yes 
<input type="radio" value="No" id="question3_1" name="question3_1" /> 
     No 
</div> 
<input type="submit" value="Delete Drop Down" onclick="return checkanddelete"/> 
</form> 

如果有人不選擇問題2例如,它刪除問題2標籤和下拉。

+0

下拉的位置在哪裏? – lifetimes

+0

假設他們意味着輸入收音機的...但你想什麼時候刪除它們?在他們提交表單之前,或者在頁面加載之前? – jammykam

回答

0

我不知道,你是什麼意思下的「下拉菜單」,但在這裏的一些信息,可以幫助你。 您可以爲要刪除的所有對象設置一個類名稱。例如。

HTML

<div> 
    <label class='question2' id="question2">2) Competently cut paper </label> 
     <br /> 
    <input class='question2' type="radio" value="Yes" id="question2_0" name="question2_0" /> 
     Yes 
    <input class='question2' type="radio" value="No" id="question2_1" name="question2_1" /> 
     No 
</div> 

JS

$(".question2").remove(); 

作爲另一種解決方案,你可以設置DIV標籤的ID以上所有這些元素

<div id='block_to_remove'> 
    <label id="question2">2) Competently cut paper </label> 
     <br /> 
    <input type="radio" value="Yes" id="question2_0" name="question2_0" /> 
     Yes 
    <input type="radio" value="No" id="question2_1" name="question2_1" /> 
     No 
</div> 

,然後刪除它的JS

$("#block_to_remove").remove(); 
2

假設你實際上意味着單選按鈕組(而非下拉列表),那麼首先你的HTML是不正確,你需要設置每個單選按鈕組的name值是相同的:

<input type="radio" value="Yes" id="question1_0" name="question1" /> Yes 
<input type="radio" value="No" id="question1_1" name="question1" /> No 

然後,你需要遍歷單選按鈕的列表,如果沒有一個組中選擇,然後刪除父div

$('input[type=submit]').on('click', function() { 
    var radioArr = []; 
    $(':radio').each(function(){ 
     var radName = this.name; 
     if($.inArray(radName, radioArr) < 0 && $(':radio[name='+radName+']:checked').length == 0) 
     { 
      radioArr.push(radName); 
      $(this).closest("div") 
        .remove(); 
     } 
    }); 
    return false; //to stop the form submitting for testing purposes 
}); 

當你在那裏,你可能想周圍添加文本一些<label for="">標籤。

這裏是jsFiddle of the solution

+0

太棒了。多謝。 – Alex

+0

我用額外的檢查更新了代碼,看看廣播組是否已經被刪除,以前它會發起刪除命令兩次(一次是,一次是否)。如果這回答你的問題不要忘記upvote和標記爲答案:) – jammykam

0

如果您的下拉有下拉的ID,和你正在尋找隱藏在提交點擊dropdon:

function checkanddelete() 
{ 
    if ($('#question2_0.=:checked, #question2_1:checked').length) 
     $('#dropdown').hide() // Or $('#dropdown').remove() if you do not plan on showing it again. 
    return false; // if you plan on not submitting the form.. 
} 

優化使用的模塊中的一個頁面包括添加適當的ID和類的div ,我假設完整代碼在那裏,但如果您打算進行UI調整,我會建議不要在混合中使用提交按鈕。