Как препятствовать тому, чтобы элемент формы отправил некоторые поля, которые мы не хотим?

У меня есть элемент формы, который содержит приблизительно 5 полей, которые заключительный запрос собирается создать путем обработки значений те поля. Таким образом, я хочу отправить только заключительный запрос, не всех тех, к серверу. Как я могу исключить те поля из того, чтобы быть отправленным (использующий jQuery)?

<form action="abc/def.aspx" method="get">
    <input type="text" name="field1" />
    <input type="text" name="field2" />
    <input type="text" name="field3" />
    <input type="text" name="field4" />
    <input type="text" name="field5" />
    <input type="hidden" name="final" />
    <input type="submit" value="Send" />
</form>

Вывод представления формы похож ниже:

abc/def.aspx?field1=val1&field2=val2&field3=val3&field4=val4&field5=val5&final=finalQuery
9
задан Sadegh 16 November 2012 в 13:02
поделиться

2 ответа

Удалить элемент при отправке.

В обработчике onsubmit:

$(formElement).submit(function() {
    $(this.field1).remove(); //removing field 1 from query
    return true; //send
});

Отключение элемента формы также останавливает его ввод в запрос. (Проверено в Chrome)

$(formElement).submit(function() {
    this.field1.disabled = true;
    return true; //send
});
10
ответ дан 4 December 2019 в 07:34
поделиться

Я думаю, что лучшим решением будет обработать отправку, а затем отправить запрос самостоятельно:

$(form).submit(function() {
    //do everything you need in here to get the final result
    var finalResult = alotoflogic();
    $.get("abc/def.aspx",final=finalResult, "callbackfunction", "responseType");
    return false;
});

, который должен делать именно то, что вы хотите. РЕДАКТИРОВАТЬ: как Алекс указал, это решение не отправит вас на эту страницу, просто получите результаты, если вам нужно перейти на новую страницу, которую вы можете сделать:

$(form).submit(function() {
    //do everything you need in here to get the final result
    var finalResult = alotoflogic();
    window.location('abc/def.aspx?final='+finalResult);
    return false;
});

Таким образом, браузер перенаправляется на эту страницу, и только конечный результат Отправить.

0
ответ дан 4 December 2019 в 07:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: