2011-06-29 42 views
0
<select name="TESTFORM" disabled="disabled"> 
    <option>one</option> 
    <option>two</option> 
    <option>three</option> 
    <option>four</option> 
</select> 

如何禁用下拉列表併發送數據或完全刪除向下箭頭?如果我添加禁用=「禁用」,那麼我已阻止選擇列表,但數據TESTFORM不發送與窗體。也許在CSS?我用JavaScript選擇列表。在選擇列表中刪除向下箭頭

+0

可能值得一讀:[成功控制](http://www.w3.org/TR/html401/interact/forms.html#successful-controls)。 – jensgram

回答

0

已禁用字段未提交。所以,你有兩種解決方案:

啓用表單字段時觸發窗體的submit事件片刻之後再次關閉:

$('#yourform').submit(function() { 
    $('select[name="TESTFORM"]', this).prop('disabled', false); 
    window.setTimeout(function() { 
     $('select[name="TESTFORM"]', this).prop('disabled', true); 
    }, 100) 
}); 

其他解決辦法是增加一個<input type="hidden">實際發送的信息:

var val = $('#yourform select[name="TESTFORM"]').val(); 
$('<input/>', { type: 'hidden', 'name': 'TESTFORM' }).val(val).appendTo('#yourform'); 
+0

謝謝,但它是安全的?我怎麼能在CSS?沒有禁用窗體,但刪除向下箭頭? –

+0

你不能。而「安全」..人們總是可以篡改提交的數據。如果選擇已在服務器上可用,您必須**使用該選項,而不要依賴用戶提交正確的信息。 – ThiefMaster

+0

你有錯誤的引用第二個例子那裏;-) – Alex

0

據我所知,你不能「刪除」向下的箭頭,而ThiefMaster的帖子是倒退的。你想要做的是啓用該選擇列表onsubmit的形式,將允許值發送。如果您不使用ajax提交表單,則不必擔心之後重新禁用該表單,因爲該頁面將被重新加載,並且該選擇將再次禁用。

$('#yourform').submit(function() { 
    $('select[name="TESTFORM"]', this).prop('disabled', false); 
}); 
+0

這是因爲我從你複製;-)謝謝,改變 – Alex

相關問題