当前位置: 首页 > 面试题库 >

如果它为空,如何防止提交HTML表单的输入字段值

谭修然
2023-03-14
问题内容

我有带输入字段的HTML表单。一些输入可以为空,即值为“”。

<input name="commentary" value="">

刚才,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从不想包含的输入中删除属性:

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 = '';
        }
    }
});

如果您使用侦听器并取消,则之后可能还需要重置表单。



 类似资料:
  • 问题内容: 我正在编写一些javascript(lubricmonkey /用户脚本),它将一些输入字段插入网站上的表单中。 问题是,我不希望这些输入字段以任何方式影响表单,我不希望它们在提交表单时提交,我只希望我的JavaScript可以访问它们的值。 有什么办法可以将一些输入字段添加到表单的中间,而在提交表单时不提交它们呢? 显然,理想的情况是输入字段不在form元素中,但是我希望结果页面的布

  • 我有一个表单,其中某个地方有一个提交按钮。 然而,我想以某种方式‘捕获’提交事件并防止它发生。 有什么办法我能做到这一点吗? 我不能修改submit按钮,因为它是自定义控件的一部分。

  • 问题内容: 在下一页中,使用Firefox的“删除”按钮提交表单,但“添加”按钮不提交。如何防止“删除”按钮提交表单? 问题答案: 你正在使用HTML5按钮元素。请记住,原因是此按钮具有默认的提交行为,如W3规范所述,如此处所示: W3C HTML5按钮 因此,你需要明确指定其类型: 为了覆盖默认的提交类型。我只想指出发生这种情况的原因=)

  • 1、通过JavaScript屏蔽提交按钮(不推荐) 2、给数据库增加唯一键约束(简单粗暴) 3、利用Session防止表单重复提交(推荐) 4、使用AOP自定义切入实现

  • 问题内容: 我有一个表单,其中某处有一个提交按钮。 但是,我想以某种方式“捕获”提交事件并防止它发生。 有什么办法可以做到这一点? 我无法修改“提交”按钮,因为它是自定义控件的一部分。 问题答案: 与其他答案不同,返回仅是答案的 一部分 。考虑在return语句之前发生JS错误的情况… html 脚本 返回此处将不会执行,并且表单将以任何一种方式提交。您还应该致电以阻止Ajax表单提交的默认表单操

  • 我正在做一个Django项目,其中一个表单不会提交。我发现罪魁祸首是一些JavaScript,它格式化了货币输入(当我移除JS或移除输入时,它提交) 这是我的简化表单--JS来自html5货币/货币输入