我有这个使用数据默认值的表单,我需要确保它们在提交之前已被清除。我有一个可以做到的手提钻脚本,但是我想知道你们中是否有人会介意帮我精练它。
下面的脚本可以工作,如果我想为表单中的每个输入写入它(目前8个数据默认值),它就完美了。我尝试用几种不同的方法选择表单中的所有输入,但似乎没有任何效果。我想有一种更聪明的方法可以解决这个问题,这就是我来到这里的原因:))
$('#form_input_submit').click(function() {
if ($('#specific_input_id').val() == $('#specific_input_id').attr('data-default')) {
$('#specific_input_id').val('');
}
return true;
});
答案 0 :(得分:1)
您可以获取表单中的所有输入,并迭代它们。如果有些是收音机或选择输入,我们需要稍微更改一下。
$('#form_input_submit').click(function() {
$(this).closest('form').find('input').each(function() {
if( this.value == $(this).attr('data-default') ) {
this.value = '';
}
});
});
点击form_input_submit
按钮,即可获得.closest()
祖先<form>
,并.find()
所有<input>
个元素。
然后使用.each()
迭代集合。
如果$(this).attr('data-default')
表示来自服务器的输入的初始值(或者从其初始状态以任何方式),则可以这样做:
if( this.value == this.defaultValue ) {
this.value = '';
}
答案 1 :(得分:1)
您可以将功能传递给.val()
,将所有输入的代码简化为此代码:
$('#form_id').submit(function() {
$(this).find('[data-default]').val(function(i, v) {
return $(this).data('default') == v ? "" : v;
});
});
此外,这不会附加到提交按钮的click
事件,而是会收听<form>
本身的submit
事件。
答案 2 :(得分:1)
这将检查具有默认数据元素的所有输入元素,并在提交之前清除这些字段。
$('#tour_submit').click(function() {
$('input[data-default]').each(function(index) {
if ($(this).val() == $(this).attr('data-default')) {
$(this).val('');
}
});
});
答案 3 :(得分:0)
尝试将所有输入项目分类,然后执行此操作
$('#form_input_submit').click(function() { $('.inputs').each(function() { if ($(this).val() == $(this).attr('data-default')) { $(this).val(''); } }); return true; });