在我的Jquery表单中,表单基于Json对象动态创建元素。它动态地向窗体添加一个Edit按钮。生成窗体时,我将所有元素设置为“禁用”。
如何在Jquery中重新启用表单元素?(不是Jquery)
当用户单击“编辑”按钮时,应启用所有表单元素。禁用工作很好,但我不能让他们启用。
for (var data_index in data) {
var item = data[data_index];
for (var key in item) {
var field_id = "fld_" + key;
// Build the Fields
var $field_container = $('<div data-role="fieldcontain"></div>');
//var $field_set = $('<fieldset data-role="controlgroup"></fieldset>');
var $field_label = $('<label for="' + field_id + '">' + key + '</label>');
var $field_input = $('<input name="' + field_id + '" id="' + field_id + '" placeholder="" value="' + item[key] + '" type="text">');
$field_input.attr('disabled', 'disabled');
$field_container.append($field_label);
$field_container.append($field_input);
$view_detail_container.append($field_container);
};
};
这可以很好地创建表单元素,并且它们是禁用的。
这个片段创建了编辑按钮(它可以很好地添加到DOM中),重新启用表单元素的代码就在这个事件处理程序中。所有表单元素都是输入。(基本文本输入)
var $action_edit = $('<a id="action_edit" data-role="button">Edit</a>');
$action_edit.on("click", function (event, ui) {
// enable all form fields
$('#detail_form').children().each(function () {
alert('clicked!') // fires everytime just fine
var child = $(this);
child.attr('disabled', '');
child.ready();
child.trigger('create');
}).trigger("create");
});
this.AddAction($action_edit);// appends this button to the correct div.
我看过Jquery文档,它似乎比以前更好,但它仍然需要更好的照顾。
通过向元素添加标准的禁用属性,可以在标记中禁用所有jQuery移动小部件,就像使用本机控件一样。每个表单小部件还有标准的禁用和启用方法,这些方法在每个表单小部件中都有文档。下面是几个禁用小部件的示例
如果您转到Jquery文档中的文本输入页面,并在页面中搜索“启用”或“禁用”,什么都找不到。此外,它们被解释为“方法”,不存在这样的方法。所有谷歌都让我尝试..。
Child.removeAttr(“禁用”);//无骰子child.attr(“禁用”);//无骰子
我是不是因为这些是动态元素而错过了什么?是否需要刷新“页面”(Jquery,记住页面是div,而不是文档)?关于元素的另一个事件?
什么都行?
谢谢。
发布于 2013-01-05 21:47:50
在对表单中的每个元素进行迭代时,.each()只下降了1级。给出一个JQuery移动表单..。
<form>
<div class="ui-field-contain">
<label></label>
<input></input>
</div>
</form>
您必须对字段容器div的子元素执行.each()。用正常的方式查询dom中的任何输入元素并更改它们的属性也是没有价值的。
$('#detail_form').children().each(function () {
var child = $(this);
child.children().each(function () {
var sub_item = $(this);
sub_item.removeAttr('disabled');
};
};
https://stackoverflow.com/questions/14176605
复制相似问题