取消时隐藏输入元素
hiding an input element on cancel
Ι 有一个表单,其中有一个输入元素,用户可以在其中输入 url - 当他单击编辑按钮时,就会发生这种情况,此时输入字段出现。
如果用户开始键入 url 并单击取消按钮,则他键入的内容将变为 null,并且输入字段将再次从视图中隐藏(使用 display:none 将类添加到元素中)。
这就是问题出现的地方:如果用户键入内容并单击保存按钮,则数据(url)将随ajax请求一起发送到服务器。这意味着下次加载表单时,用户将看到提交的 URL。如果此时选择编辑表单,然后按取消按钮,则提交的网址将从视图中隐藏...当然,这是不可取的,因为我们在这里谈论的是提交的数据。
我如何区分一个与另一个,提交的数据和未提交的数据取消。
下面是一些代码,首先与单击取消按钮有关,其次与将类添加到输入元素的函数有关:
$('#canceladrs').click(function() {
var urlcancel=$.trim($('input#wwwaddress').val());
save=2;
close_url(save,urlcancel);
closeaddress();
});
here is the close_url() function
function close_url(savearg,urlarg,cancelarg)
{
console.log(urlarg);
if(savearg===1)// save button clicking here
{ if(urlarg==='')
{
$('input#wwwaddress').addClass('hideurl');
$('label[for=url]').addClass('hideurl');
$('input#wwwaddress').val(null);
}
else if(urlarg!=='')
{
$('input#wwwaddress').removeClass('hideurl');
$('label[for=url]').removeClass('hideurl');
$('input#wwwaddress').val(urlarg);
}
}
else if(savearg===2)//cancel button clicking here
{if((urlarg!=='')||(urlarg===''))
{
$('input#wwwaddress').addClass('hideurl');
$('label[for=url]').addClass('hideurl');
}
}
}
}
正如您在上面看到的,我正在尝试标记取消按钮设置的单击保存= 2。
好的,根据您的评论,如果输入中包含文本,您不想隐藏输入。在这种情况下,请允许我参考您提供的代码片段:
if((urlarg!=='')||(urlarg==='')){
$('input#wwwaddress').addClass('hideurl');
$('label[for=url]').addClass('hideurl');
}
这里的逻辑是urlarg
没有值,或者如果urlarg
有值,则添加一个隐藏输入和标签的类。
因此,您在所有情况下都隐藏了输入和标签。
如果不想在输入元素包含内容时隐藏它们,请不要添加urlarg !== ''
条件。
我还建议为取消和保存事件添加一个单独的事件处理程序,这样您就不必向函数发送特殊信号,例如save
。
另外,正如我所提到的,jquery已经有一个hide
,没有必要自己做。
最后,您可能希望修剪 urlarg 字符串,因为如果用户只输入一个空格,则基本没有值,但您的脚本会将其视为具有值。
相关文章:
- Javascript获取具有不同id的文件数's来自没有多个属性的文件输入元素
- 访问代码生成的输入元素上的keyup事件
- 如何通过jQuery发送选定的元素和文本输入
- 使用 jQuery,当我在输入框外部单击时,如何更改输入元素的值
- 从IE中的不同元素调用时,文件输入控件未正确启动
- 使用jQuery切换来显示内容,但防止在用户单击输入元素时关闭
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- 如何在dom元素中插入输入标记数据插件
- 根据输入文本按元素排序,AngularJS
- 更新最大滑块元素输入类型=文本
- 角度/动画引导元素(输入组)
- 如何创建表单元素输入框,标签使用javascript onclick
- 绑定到单击事件以查找子元素输入值
- 特定值元素输入未被读取
- 在JavaScript中将用户输入的元素输入到数组中
- JQuery隐藏元素输入问题遍历
- 如何找出表单是否没有任何元素(输入,选择)在jquery
- 使用表单元素(输入)初始化放大弹出菜单
- 如何获取所有子元素输入
- 基于子元素输入控制父元素:focus