我想使用jquery对话框来收集用户信息(例如用户名)。如何使用Jquery并将数据收集到Javascript变量?
这是我到目前为止的尝试:
// Dialog here, how to rewrite this?
$('<form> <input type="text" style="z-index:10000" name="name"> <br> </form>').dialog({modal:true});
// push data to Parse
var Label = Parse.Object.extend("Label");
var result = new Label();
result.set("labels", localStorage.getItem("labels"));
result.set("name", name);
result.save(null, {
sucess : function(result) {
alert("Stored data sucessfully!");
},
error: function(result, error) {
alert("Error submitting data, error code:" + error.message);
}
});
但我还是无法输入文字。
答案 0 :(得分:5)
您可以在buttons
部分中添加所需的任何功能,这样当用户点击“确定”时,您就会处理他们的信息。这方面的文档是here。例如:
$('<form><input type="text" style="z-index:10000" name="name"><br></form>').dialog({
modal: true,
buttons: {
'OK': function () {
var name = $('input[name="name"]').val();
storeData(name);
$(this).dialog('close');
},
'Cancel': function () {
$(this).dialog('close');
}
}
});
这是一个小提琴,显示了这一点(虽然没有样式):http://jsfiddle.net/duffmaster33/zuervqop/1/
答案 1 :(得分:0)
处理对话框的代码应该在onClose
函数中。
$('<form> <input type="text" style="z-index:10000" class="name"> <br> </form>').dialog({
modal: true,
onClose: function() {
var name = $(this).find(".name").val();
var Label = Parse.Object.extend("Label");
var result = new Label();
result.set("labels", localStorage.getItem("labels"));
result.set("name", name);
result.save(null, {
sucess: function(result) {
alert("Stored data sucessfully!");
},
error: function(result, error) {
alert("Error submitting data, error code:" + error.message);
}
});
}
});