2012-11-27 87 views
0

當我在表單輸入文本框中使用jquery $.removeAttr()時,它將文本框的大小調整爲大約5個像素。如果我不使用$.removeAttr()那麼文本框將正常工作。這筆交易是什麼?

我最終試圖從文本框中刪除淺灰色斜體CSS樣式,並具有普通樣式的黑色文本。

爲什麼我的文本框正在調整大小?

HTML:

<style type="text/css"> 
    .defaultText{ 
     color: lightgrey; 
     font-style: italic; 
    }​ 
</style> 

<script language="javascript" type="text/javascript"> 
$(document).ready(function() { 
    $('#email, #emailconfirm').live('focusin', function() { 
     if(this.value == 'Email' || this.value == 'Confirmation Email'){ 
      $(this).val('').removeAttr('class'); 
     }    
    }); 
}); 

<form id="newsletter" method="post" action="/mailist/?p=subscribe" name="subscribeform"> 
    <input type="text" name="email" id="email" class="defaultText" value="Email" autocomplete="on" size="30"/><br/> 
    <script language="Javascript" type="text/javascript">addFieldToCheck("email","Email");</script> 
    <input type="text" name="emailconfirm" id="emailconfirm" class="defaultText" value="Confirmation Email" autocomplete="off" size="30"/><br/> 
    <script language="Javascript" type="text/javascript">addFieldToCheck("emailconfirm","Confirm your email address");</script> 
    <input type="submit" id="go" name="subscribe" value="Subscribe" onClick="return checkform();"> 
</form>​ 
+0

顯示你的代碼。 – deerchao

+1

你確定它不包括改變字體大小嗎? – bondythegreat

+0

請顯示您的代碼以刪除屬性或jsfiddle來檢查它。 –

回答

0

您可以通過爲文本框指定固定寬度來解決問題。這樣,即使刪除.defaultText類,文本框仍會設置爲定義的寬度。

input[type="text"] { 
    width: 200px; 
} 
.defaultText{ 
    color: lightgrey; 
    font-style: italic; 
} 

Demo

0

因此,通過增加width: 200px;defaultText類我能解決這個問題。

<style type="text/css"> 
    .defaultText{ 
     width: 200px; 
     color: lightgrey; 
     font-style: italic; 
    }​ 
</style> 
+0

我看不出如何解決這個問題 - 您仍然刪除該類以及它在焦點上應用的所有樣式。 – sachleen