0

我目前有两个具有相同名称的输入(我知道这有点奇怪)。第一个是选择框,第二个是文本字段。

我想要做的是检查一个是否已完成,另一个是否为空,然后在提交我的表单之前删除空的。

这是我的 HTML:

<form accept-charset="UTF-8" action="/helps" class="formtastic help" id="new_help" method="post" novalidate="novalidate">

<li class="select input required" id="help_category_input">

  <label class=" label" for="help_category">
    Category<abbr title="required">*</abbr>
  </label>
  <select id="help_category" name="help[category]">
    <option value=""></option>
    <option value="First Category">First Category</option></select>
    <option value="Second category">Second Category</option></select>

</li>

<li class="string input required stringish" id="help_category_input">
  <label class=" label" for="help_category">
    Category<abbr title="required">*</abbr>
  </label>
  <input class="input2line" id="help_category" maxlength="255" name="help[category]" type="text" />

</li>

<li class="action button_action " id="help_submit_action">

  <button name="button" type="submit">Create Help</button>

</li>
</form>

我尝试使用 Jquerysubmit方法和empty方法,但我想我真的不知道如何正确选择正确的字段。

你能帮我做吗?亲切地抢

编辑:我有类似的东西

if($('#help_category > option').empty && $('#help_category[type=text]').!empty{
  to_remove = $('#help_category > option')
  to_remove.remove
}

if($('#help_category > option').!empty && $('#help_category[type=text]').empty{
  to_remove = $('#help_category[type=text]')
  to_remove.remove
}
4

2 回答 2

2
$("#new_help").submit(function() {
    $("input[name='help[category]'], select[name='help[category]']", this).each(function() {
        if ($(this).val() === '' || $(this).val() === null) {
            $(this).remove();
        }
    });
});
于 2013-07-05T09:57:33.337 回答
0

您已将两个元素设置为具有相同的 id 字段 ( id="help_category"),这不是有效的 HTML。Id 属性必须是唯一的。

更改输入的 id 值,并使用 jquery 的 id 选择器来识别它们。

<select id="help_category_select" name="help[category]">
    <option value=""></option>
    <option value="First Category">First Category</option>
    <option value="Second category">Second Category</option>
</select>

<input class="input2line" id="help_category_input" maxlength="255" name="help[category]" type="text" />

$("#new_help").submit(function()
{
     var sel = $('#help_category_select');
     var inp = $('#help_category_input');
     if ((sel.val() === '' || sel.val() === null) &&
         (inp.val() === '' || sel.val() === null)
     {
         // Neither value selected - Prevent submission
         return false;
     } else if (sel.val() === '' || sel.val() === null)
     {
         sel.remove();
     } else {
         inp.remove();
     }
});
于 2013-07-05T10:06:30.450 回答