我有带输入字段的HTML表单。一些输入可以为空,即值为“”。
<input name="commentary" value="">
刚才,commentary未设置字段时,它显示在提交网址中,如下所示:&commentary=
commentary
&commentary=
我如何从提交URL中删除空的输入,因此当commentary输入为空时,将根本不会传递该输入。
非常感谢你。
感谢 minitech的 回答,我可以解决它。JavaScript代码如下:
$('#my-form-id').submit(function() { var commentary = $('#commentary').val(); if (commentary === undefined || commentary === "") { $('#commentary').attr('name', 'empty_commentary'); } else { $('#commentary').attr('name', 'commentary'); } });
我为字段名加上“ empty_”前缀的唯一原因是IE无论如何都会在URL中传递空名称。
据我所知,这只能通过JavaScript来完成,因此,如果您依赖此功能,则需要进行重组。无论如何,这个想法是name从不想包含的输入中删除属性:
name
jQuery的:
$('#my-form-id').submit(function () { $(this) .find('input[name]') .filter(function () { return !this.value; }) .prop('name', ''); });
没有jQuery:
var myForm = document.getElementById('my-form-id'); myForm.addEventListener('submit', function () { var allInputs = myForm.getElementsByTagName('input'); for (var i = 0; i < allInputs.length; i++) { var input = allInputs[i]; if (input.name && !input.value) { input.name = ''; } } });
如果您使用侦听器并取消,则之后可能还需要重置表单。