清除输入的JS JQuery方法效果太好
JS JQuery Method to clear inputs works too well
我为UI类制作了一个方法,用于清除包含div的输入。
问题是,一旦调用了它,在刷新页面之前,复选框永远不会通过AJAX调用设置。下面的示例用于我的组/用户管理。如果单击要编辑的组,会弹出一个jQuery UI对话框,其中包含该组的属性和权限。如果取消并尝试添加一个新的,则输入将被清除。如果在那之后您要编辑一个组,则不会更新输入。
编辑:无论是否调用了clearInputs方法,如果单击取消按钮,复选框似乎都会停止工作。
这是UI类的方法:
clearInputs: function(container) {
$(container + " :input").val("");
$(container).find('input[type=checkbox]:checked').prop('checked', false);
}
还有一个调用代码的例子(从我的项目中复制,但我去掉了一些多余的…
/* The user clicks the edit group button... */
$(document).delegate('.group_edit', 'click', function() {
var groupId = $(this).attr('id').replace("group_edit_", "");
// This call to the clearInputs method is commented out,
// and behaves as I described above.
// ui.clearInputs("#dialogGroup");
$.ajax({
type: "POST",
url: "ajax.users.php",
data: {
action: "get_privs",
group: groupId
},
success: function (result) {
if (result.success == true) {
// Set the name value
$("#name").val(result.GroupName);
// Update each of the checkboxes
$.each(result.privs, function(priv, grant) {
grant = Boolean(parseInt(grant));
$('#dialogGroup input[value=' + priv + ']').prop('checked', grant);
});
/* Create the dialog */
$("#dialogGroup").dialog({
buttons: {
"OK" : function () {
$(this).dialog("close");
var form_data = new Array();
$.each($("input[@name='cbox[]']:checked"), function() {
form_data.push($(this).val());
});
$.ajax({
/* Saves the form data */
});
},
"Cancel": function() {
ui.clearInputs("#dialogGroup");
$(this).dialog("close");
}
}
});
最后添加一个组:
$(document).delegate('#group_add', 'click', function() {
var dialog = "#dialogGroup";
// ui.clearInputs(dialog);
$(dialog).dialog({
modal: true,
title: "Create Group",
buttons: {
"OK": function() {
$(this).dialog("close");
$("#dialogNotify").html("Saving...");
$("#dialogNotify").dialog('open');
var form_data = new Array();
$.each($("input[@name='cbox[]']:checked"), function() {
form_data.push($(this).val());
});
$.ajax({
/* Save the form data */
});
},
Cancel: function() {
$(this).dialog("close");
}
}
});
});
我希望我包括了一切。。。如果没有,我会更新。
试试这个:
$( document ).ready(function()
{
var search_on = $('#formX');
$( search_on )
//CHANGE "input" for "input,select" to search all fields
.find('input')
.each(function( e )
{
if( $(this).attr('type') == 'radio' || $(this).attr('type') == 'checkbox' )
{
$(this).attr('checked',false);
//USE RESET() IF IS A FORM FIELD
$(this).reset();
}
//IF IS A DROPDOWN
/*
else if( $(this).attr('type') == undefined )
{
$(this).find('option').attr('selected',false);
}
*/
else
{
$(this).val('');
//USE RESET() IF IS A FORM FIELD
//$(this).reset();
}
});
});
或者使用此功能(如果是表单):
jQuery.fn.reset = function () {
$(this).each (function() { this.reset(); });
}
并呼叫
$('#formX').reset();
我想明白了。问题出在我的方法内部,我有:
clearInputs: function(container) {
$(container + " :input").val("");
$(container).find('input[type=checkbox]:checked').prop('checked', false);
}
我想,这个方法的第一行是对所有输入做一些事情。
如果您将第一行更改为
$(container + " :input[type=text]").val("");
它运行良好。。。
相关文章:
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- jQuery插件-从插件中调用公共方法
- JQuery:向多个匹配结果添加换行符的最简单方法
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 从数组中删除元素的最佳方法是:javascript/jquery
- 使用jquery.load('pageName')方法时,未从应用程序缓存加载Html页
- 有没有一种方法可以在没有文档或jQuery的情况下使用javascript解码html实体
- jquery:将动画绑定到滚动条位置的更好方法
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- 在附加方法jquery validate中为特殊字符使用regex
- .keyup 方法 JQuery 上的筛选值
- $.get() 方法 JQuery 不读取任何内容 (html)
- 使用“;.css()"方法jQuery
- 将属性传递给方法jQuery和Rails
- Object[Object Object]没有方法-jQuery错误
- AJAX方法Jquery不能返回数据
- 发送值post方法jquery在php页面
- 对象不支持属性和方法.- jQuery诺基亚Lumia