2017-06-11 24 views
3

ブートストラップを使用してモーダルダイアログに表示される「編集」フォームのWebページがあります。ブートストラップモードでHTML入力の「無効」属性が機能しない

フォームが表示されたら、最初に入力フィールドの1つを無効にし、ユーザーがチェックボックスをクリックすると有効にします。

問題は、私のブラウザ(Chrome)が、モーダルダイアログ内の任意のフォーム要素のdisabled属性を反映していないことです。モーダル外のフォーム要素は正常に動作します。

これは、まったく同じロジックを持つ別のWebページでも正常に動作します。このページはにのみ間違っています。

HTML5用のW3 Validatorを使用してページソース全体を実行し、エラーを戻しません。

コード入力要素のために:

<form role="form" id="frmEdit" action="group_edit.php" method="post"> 
    <!-- ... --> 
    <input type="text" id="txtEditAlternate" class="form-control" name="alternate" disabled /> 
    <!-- ... --> 
</form> 

私も強引にしようとしたが、文書準備にjQueryを使ってこれを無効に。これは動作しません:

$(document).ready(function() { 
    $("#txtEditAlternate").attr("disabled", true); 
    // ... 
}); 

唯一のもの、それはテキストフィールドを無効に来るときは、チェックボックスがチェックされている場合で、その後、未チェック仕事をしていること:

$("#chkbox").click(function() { 
    $("#txtEditAlternate").attr("disabled", !$(this).prop("checked")); 
}); 

が、敗北のようなものこのチェックボックスがオンになるまで、テキストフィールドは無効になっているはずです。

disabledを値なしで使用すると、有効なHTML5(バリデーターはこれについて警告していない)が含まれていて、他の場所でも動作することがわかりました。

私は考えることができるすべてを試しましたが、Bootstrapモーダル機能とは関係があると推測しています。しかし、私が言ったように、同じロジックは私が持っている別のWebページで完璧に動作します。

はい、Chromeは物事をキャッシュするのが好きです。私は何度も "ハードリフレッシュ"して何も変えない。

提案がありますか?

+0

。それは問題がどこか別のものでなければならないことを意味します。良いニュースは、他のページで同じコードが動作することです。それで、他のページを使ってそのページを再作成してみませんか?そのフォームを持ち上げて、新しいフォームにダンプしてください。 –

+0

ウェブページへのリンクはありますか? doctype宣言はありますか? –

+0

@GovindRaiいいえ、これは私のコンピュータ上でローカルにホストされています。 MacでMAMPを使用する。サーバーとChromeを再起動しようとしましたが、まだ動作していません。 –

答えて

2

は無効= "無効" を使用してみてください:

<input type="text" id="txtEditAlternate" class="form-control" name="alternate" disabled="disabled" /> 
+0

いいえ、それでも動作しません。 –

+1

さて、私はモーダル部分を書き直しました。私は前回何が間違っていたのか分かりませんが、それに関係なくうまくいきました。 –

0

使用は代わりのattrの小道具あなたのコードは私のChromeと私のFirefoxで動作します

$("#txtEditAlternate").prop("disabled", true); 
+0

私はその部分を書き直しました。しかし、 'attr'と' prop'を使っても決して違いはありませんでした。 –

関連する問題