2010-09-10 51 views
0

下面的代碼我不能工作(jquery 1.4.2) 看起來選擇器不工作,因爲它不會在id = p_quantity之後做任何事情。我添加了.remove()來查看它是否是該行的麻煩,並且它沒有刪除兼容模式下的文本框,它以常規模式和FF工作。難倒!jquery代碼無法在IE8兼容模式下工作

編輯此行不起作用。

$("input[type='textbox'][name^='QTY']").attr('id','p_quantity').remove(); 

有趣的是兩個圖像輸入的第二撤除IE COMP模式下工作精細

<table cellspacing="0" cellpadding="3" border="0"><tr><td> 
<span class="PageText_L71n">Qty</span>: <input type="textbox" name="QTY.LL24" size="3" maxlength="7" onkeydown="javascript:QtyEnabledAddToCart();" value="1"> 
</td><td> 

          <input type="image" src="/v/vspfiles/templates/moderntot/images/buttons/btn_addtocart.gif" name="btnaddtocart" alt="Add to cart" border="0"> 

    <input type="hidden" name="ReplaceCartID" value="" /> 
    <input type="hidden" name="ProductCode" value="LL24" /> 
    <input type="hidden" name="e" value="" /> 

     <input type="hidden" name="ReturnTo" value="ShoppingCart.asp" /> 

    &nbsp;<input type="image" src="/v/vspfiles/templates/moderntot/images/buttons/btn_addtowishlist.gif" name="btnaddtowishlist" alt="Add To Wish List" border="0" /> 

    </td></tr> 

    </table> 

<script type="text/javascript" language="javascript"> 
$(function(){ 
$("input[type='textbox'][name^='QTY']").attr('id','p_quantity').remove(); 
$("input[type='image'][name^='btnadd']").attr('id','button').remove();  
}); 
</script> 

回答

1

不能更改現有形式的輸入元件的idname attribtues在IE6/7 。您需要創建一個全新的DOM元素並將其替換爲原始元素。另請參閱此related question

順便說一句,textbox是一個無效的輸入類型,它將默認爲text。你實際上應該使用type="text"

+0

好吧,我不知道怎麼說也引起第二jQuery的輸入語句工作正常BTW,這並不正常工作或$(「輸入[類型=‘文本’] [名^ =‘數量’]」)。刪除();它沒有改變任何屬性 – user357034 2010-09-10 16:14:59

+0

好吧,你是正確的,但不是關於在這種情況下的第一件事,而是關於「文本框」(這段代碼不是我不能改變的)它有「文本框」作爲類型,所以我改變了選擇器爲$(「input [type^='text'] [name^='QTY']」)。remove();它可以正常工作 – user357034 2010-09-10 16:27:40

+1

它確實無法工作。嘗試在JS/jQuery中選擇帶有新ID或名稱的元素,或者將表單提交給服務器端,而服務器端又依賴新名稱作爲參數名稱。 – BalusC 2010-09-10 16:29:55