Запрашивать недавно введенные значения для форм, не отправляя и не отправляя в ajax какие-либо URL - PullRequest
0 голосов
/ 03 января 2019

Я использую простой встроенный веб-сервер, на котором необходимо заполнить форму и отправить данные тремя различными способами для взвешивания грузовика. Поскольку у меня есть 3 разных кнопки для отправки данных через ajax-вызов на веб-сервер lua, я не хочу, чтобы форма отправлялась по умолчанию.

<form id="formTruck" class="form-group">
   <label class="form-label" for="reg-num">Rego:</label>
   <input class="form-input" type="text" id="rego">       
   <label class="form-label" for="product">Product:</label>
   <input class="form-input" type="text" id="product">
   <label class="form-label" for="valuePT">Preset Tare</label>
   <input class="form-input" type="text" id="valuePT">
   <input id="dump-submit" style="display:none" value="Submit_Dump" type="submit"> 
   </form>
<div id="weighInOutGroup">
    <button id="weighIn" onclick="weigh(this.id);">WEIGH IN</button>
    <button id="weighOut" onclick="weigh(this.id);">WEIGH OUT</button>
    <button id="weighInPt" onclick="weigh(this.id);">WEIGH IN (PT)</button>             
</div>

У меня есть функция JS для выполнения ajax-запроса, зависит от нажатой кнопки

function weigh(type) {
    var weighData = {};     
    if (type == "weighIn") {            
        $.ajax({
            //ajax request
        },
    });         
    } else if (type == "weighInPt") {           
        //ajax request
    } else if (type == "weighOut") {
        //ajax
    }
};

Кроме того, я использовал следующую функцию jquery, чтобы предотвратить нажатие клавиши ввода при переходе к действию по умолчанию

$("#formTruck").submit(function(e){     
    e.preventDefault();
    console.log("weighIn submit prevented")
});

но, делая это, я не мог получить последние вводимые данные для полей ввода текста, так как форма фактически не отправлена ​​в действии по умолчанию.

Может ли кто-нибудь предложить мне способ достижения этого без каких-либо публикаций или перехода на какие-либо страницы?

1 Ответ

0 голосов
/ 03 января 2019

Я не понимаю, почему вы используете 3 кнопки отправки, вместо них используйте переключатели, в представлении jquery добавьте свои if и для перехвата данных формы используйте $ ("# formTruck"). Serialize ()

$("#formTruck").submit(function(e){     

    console.log("weighIn submit prevented");

    let data = $("#formTruck").serialize() ;

    if ($("#rdWeighIn").prop("checked")) {
        $.ajax({ data: data, ...
    } else if ($("#rdWeighOut").prop("checked")) {
        $.ajax({ data: data, ...
    } else if ($("#rdWeighInPt").prop("checked")) {
        $.ajax({ data: data, ...
    } else {
    // 
    }
return false;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...