我試圖創建一個窗體,當有人點擊一個「編輯」按鈕。我下面這個例子: http://jqueryui.com/demos/dialog/modal-form.htmljquery按鈕和模式窗體
我有兩個問題:
的按鈕看起來像一個普通的HTML按鈕。當我點擊時,它變成了jquery按鈕。然後我再次點擊,對話框打開。顯然,我只想要點擊一次jQuery按鈕打開對話框。
我的表單顯示在主頁面上,當你點擊編輯按鈕打開對話框。它不應該顯示在主頁面。它應該只存在於對話框中。但從本教程(http://jqueryui.com/demos/dialog/modal-form.html)我看不到他們隱藏表單,所以我不知道他們是如何做到的。
我的HTML形式:
<div id="dialog-form" title="Change camera settings">
<form>
<fieldset>
<label for="camera_name">Camera Name</label>
<input type="text" size="16" maxlength="32" name="camera_name" id="camera_nameid" class="text ui-widget-content ui-corner-all" />
</fieldset>
</form>
</div>
我的按鈕(其是示出了所有的攝像機另一表):
<button id="editbutton" onClick='edit(this, "<?php echo htmlentities($_SERVER['REQUEST_URI']); ?>", "<?php echo $result_cameras[$i]["camera_name"]; ?>", "<?php echo $camera_quality; ?>")'>Edit</button>
我jQuery代碼。它仍然需要更多的工作,但只是有一件事我處理這camera_name:
function edit(t, to, cameraname, cameraquality,)
{
var js = jQuery.noConflict();
js(function() {
var name = js("#camera_name");
allFields = js([]).add(name);
js("input:text").val(cameraname); //fill in the current data for cameraname
js("#dialog-form").dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
buttons: {
"Edit camera settings": function() {
allFields.removeClass("ui-state-error");
},
Cancel: function() {
js(this).dialog("close");
}
},
close: function() {
allFields.val("").removeClass("ui-state-error");
}
});
js("#editbutton")
.button()
.click(function() {
js("#dialog-form").dialog("open");
});
});
}
感謝您的回覆。但是,現在我沒有得到任何對話。我所擁有的是一個表格(使用php填充數據庫)和每行的編輯按鈕。這將打開一個對話框,其中將表格中的當前值填入表格中。然後有人可以編輯。這就是爲什麼我將一堆變量傳遞給編輯函數,所以我知道這些值。 – Tom 2011-12-16 20:31:52