2012-02-21 6 views
0

私はこの問題を一日中戦ってきました。誰かが私に答えてくれることを願っています。私は検索の束をして、答えを見つけるように見えることができません。jqueryダイアログ送信ボタンは有効/無効を制御できません

私には3つのフォームがあります。私は2番目のフォームの中で働いています。どのフォームも他のフォームに埋め込まれていません。

私は2つのフォーム要素、ドロップダウンリストとテキストボックス、およびそれが囲まれたフォームに投稿することを予期した送信ボタンを含むhidden divを持っています。 submitボタン)、jquery.Dialogを起動するjavascriptがあります。このコードは次のようになります。

function showReleaseDiv() { 
    var div = $("#ReleaseHoldsDiv"); 
    var f = div.closest("form"); 
    div.dialog({ width: 270, height: 187, modal: true, title: 'Bulk Hold Resolution' }); 
    div.parent().appendTo(f); 
} 

この部分は正しく機能します。私はフォームからダイアログの内容を取り出す典型的なjqueryの問題を克服したので、フォームに戻しますが、これが本当の問題を引き起こしているのか疑問に思っています:

ドロップダウンリストそして私が投稿する前に、テキストボックスが両方必要とされているので、私は、その後、私はドロップdownlist上のonchangeイベントを持って無効に送信ボタンをデフォルトにし、テキストボックスのonkeyupのは、次のJavaScript呼び出し:

function enablePopupRelease() { 
    var button = $("PopupReleaseButton"); 
    if (button && button != null) { 
     button.attr("disabled", "disabled"); 
     if ($("#ResolutionTypeCode").val() != "" && $("#ResolutionComments").val() != "") { 
      button.removeAttr("disabled"); 
     } 
    } 
    return true; 
} 

両方をイベントが正しく発生し、コードをステップ実行します。すべて正常に見えますが、ボタンの無効状態は変わりません。

助けてください。私はあなたがこの行のハッシュが欠落していると信じて

+1

サイドノート、 '場合(ボタン&&ボタン!= nullは)'何もボタンに一致しない場合は、それだけで空のjQueryオブジェクトになり、不要です。しかし、テストしたい場合、 'if(button.length)'を使うべきです – Andrew

+0

あなたが望む任意のメソッドを使用して、属性が実際に削除されているかどうか確認できますか? – Pluckerpluck

+1

'var button = $(" PopupReleaseButton ");'行に '#'がありませんか? –

答えて

2

変更:

var button = $("PopupReleaseButton"); 

var button = $("#PopupReleaseButton"); 
+0

私はばかです!私はそれを見なかったとは信じられません、Grrrr ... – farcrats

0

に次のように最初に私はいくつかのコードをきれいになります。

function enablePopupRelease() {  var button = $("PopupReleaseButton");  if (button) {   button.attr("disabled", "disabled");   if ($("#ResolutionTypeCode").val() && $("#ResolutionComments").val()) {    button.removeAttr("disabled");   }  }  return true; } 

mどんな違いがありますか?

コードを突破した場合は... button.removeAttr( "disabled")で停止します。お願いします?

0

フォームの送信ボタンにjQuery UIボタンウィジェットを使用していますか?その場合は、ボタンを無効にするには

$("#PopupReleaseButton").button({disabled: true}); 

に電話する必要があります。

0

disabledは属性ではありません。代わりにbutton.prop('disabled',true)button.prop('disabled',false)を使用してみてください。

http://api.jquery.com/prop/

関連する問題