web-dev-qa-db-ja.com

jQuery .prop( "disabled"、false)がChrome

.prop( "disabled"、false)に問題がある場合、operaおよびfirefoxで正常に動作しますが、IEおよびchrome私はそれを動作させることができません。

実はそれはインビネーションフォームで、このような送信ボタンを作成します

<input id="sendInvite" class="mail_send" disabled="disabled" type="button" name="invite" value="Send">

そしてここにCSSがあります

.mail_send[disabled="disabled"] {background-color:#343434; color:#747474}

ボタンが無効になっていてクリックできないことがわかるように、ボタンを削除してメールを送信した後、最初に名前とメールを書き込む必要があります。このimの書き込みコードは次のとおりです: http://Pastebin.com/8u23G90b

しかし、ここで何かが間違っています、chromeおよびIE無効になっているボタンから削除されることはありません、imもjquery1.7.1をロードします

pS私の英語でごめんなさい

19
user994461

属性を削除します。

$('button').removeAttr("disabled");

詳細については、 。removeAttr() を参照してください。

23
J. Holmes

問題はJQueryではなく、CSSセレクターにあります。無効属性は、要素が実際に無効であるかどうかではなく、ページが最初に読み込まれたときのデフォルト値を参照しています。

必要なCSSセレクターは :disabled selector :です。

.mail_send:disabled {background-color:#343434; color:#747474}

this jsfiddle の例を見ることができます。

2
Fiddles

.prop( "disabled"、false)を使用して、[保存]ボタンから無効を削除するという同様の問題が発生していました。 Disabledは、.prop( "disabled"、true)を介して割り当てられていました。

しかし、誰が何を待っているのか-このプロパティ(htmlタグで無効としてレンダリングされる)を削除しようとすると、class = "disabled"として出力されていることがわかりました!

このため、私は.removeClass( 'disabled')を使用しました。私が言いたいのは、物事が思ったように機能しない場合は、初期出力が期待どおりであることを確認することです。


0
DGG