Я изменяю форму POS (точка продажи), используя tampermonkey для загрузки пользовательского скрипта.До сих пор я добавил accesskey и remote-data к элементам, и это работает.Я пытаюсь заставить сканер штрих-кода работать на странице без взаимодействия.Ключ доступа фокусирует форму, а удаленные данные отправляют ее с помощью сообщения ajax.Это до сих пор прекрасно работает, за исключением того, что форма не ясно после отправки.Я нашел этот ответ:
Удаленная форма Clear Rails после отправки
, и ответ выглядит так, как будто он должен работать, однако мне нужно имплицировать его с помощью usercript и вот гдеЯ застрял.Я хочу использовать beforeSend, чтобы форма была очищена как можно скорее, чтобы я мог сканировать повторно.
$("#new_message").bind("ajax:beforeSend", function(event,xhr,status){
$('#message_content').val('');
}
В моем случае форма #new_line_item
под #scan-wrap
.Есть два #new_line_item
, и было бы хорошо применить к обоим.Один предназначен для штрих-кодов, а другой для ввода вручную (имеет автозаполнение).Это была моя попытка:
HTMLElement.prototype.findId = function(_id) {
var childs = this.childNodes;
for (var i = 0; i < childs.length; i++) {
if(childs[i].nodeType == Node.ELEMENT_NODE) {
if(childs[i].id == _id) {
return childs[i];
}
}
}
return null;
}
// Usage Example
var parent = document.getElementById("scan-wrap");
var form = parent.findId("new_line_item");
parent.findId("new_line_item").setAttribute("data-remote", "true");
form.findId("line_item_upc_code").setAttribute("accesskey", "b");
form.bind("ajax:beforeSend", function(event,xhr,status){document.getElementById("line_item_upc_code").val('')});
form.bind - это не функция, это ошибка, которую я получаю, и, очевидно, она не работает.Если я понимаю, мне нужна функция, используемая для отправки туда?
Это форма:
<div id="scan-wrap">
<form class="simple_form form-inline" id="new_line_item" novalidate="novalidate" action="/sales/16291478/add_item" accept-charset="UTF-8" method="post" data-remote="true"><input name="utf8" type="hidden" value="✓"><input type="hidden" name="authenticity_token" value="tJHddPfCM5zkB5YFBYtC4zWp1DZSLDHcNKylmG0hVrrS7EhaDjh2N96m0dwprdU/TMAU78xNVZHstXmgm2P1Vw==">
<input class="string optional form-control" id="line_item_upc_code" name="line_item[upc_code]" size="25" type="text" style="width: 100px;font-size: 10px;" placeholder="Scan a barcode" autofocus="" accesskey="b">
<input class="numeric decimal optional" id="line_item_quantity" name="line_item[quantity]" step="any" type="number" value="1" style="width: 8ex;font-size: 10px;height:34px;">
<input class="btn btn-default form-control" name="commit" type="submit" value="Scan UPC">
</form> </div>