отправьте форму через Ajax с помощью прототипа и обновите отделение результата

Вместо того, чтобы вставлять блок во вход, почему бы не иметь особый стиль ввода для этих сценариев, где вы можете добавить или добавить любой блок. Что-то вроде:

.unit-input {
  border: #DFDFDF solid 1px;
  display: inline-flex;
  border-radius: 4px;
  overflow: hidden;
  font-family: sans-serif;
  width: 10em;
}

.unit-input__input {
  border: 0;
  padding: .5em;
  font-size: 1em;
  width: 100%;
}

.unit-input__input:focus {
  background: #EDFFFB;
  outline: none;
}

.unit-input__prepend,
.unit-input__append {
  background: #F4F4F4;
  padding: .5em;
  border: #DFDFDF solid 0;
  flex-grow: 0;
}

.unit-input__prepend {
  border-right-width: 1px;
}

.unit-input__append {
  border-left-width: 1px;
}
<p>
  <span class="unit-input">
    <input class="unit-input__input" type="number">
    <span class="unit-input__append">days</span>
  </span>
</p>

<p>
  <span class="unit-input">
    <span class="unit-input__prepend">[111]lt;/span>
    <input class="unit-input__input" type="number">
  </span>
</p>

<p>
  <span class="unit-input">
    <input class="unit-input__input" type="number">
    <span class="unit-input__append">kg</span>
  </span>
</p>

8
задан Rob W 28 December 2011 в 20:49
поделиться

4 ответа

Опытные страницы API выезда на Form.Request и Event обработка.

В основном, если у Вас есть это:

<form id='myForm'>
.... fields ....
<input type='submit' value='Go'>
</form>
<div id='result'></div>

Ваш js был бы, более или менее:

Event.observe('myForm', 'submit', function(event) {
    $('myForm').request({
        onFailure: function() { .... },
        onSuccess: function(t) {
            $('result').update(t.responseText);
        }
    });
    Event.stop(event); // stop the form from submitting
});
33
ответ дан 5 December 2019 в 04:52
поделиться

Сначала необходимо сериализировать форму, затем позвонить Ajax Updater, с помощью опций POST и передать ее сериализированные данные формы. Результат затем появится в элементе Вы sepcified.

3
ответ дан 5 December 2019 в 04:52
поделиться

Необходимо возвратить false значения от функции ajax, которая блокируется, стандартная форма отправляют.

<form id="myForm" onsubmit="return myfunc()" action="/getResults">


function myfunc(){
   ... do prototype ajax stuff...
  return false;

}

Используя onsubmit на форме также получает пользователей, которые отправляют с клавишей Enter.

3
ответ дан 5 December 2019 в 04:52
поделиться

Необходимо остановить действие по умолчанию onsubmit событие.

Например:

function submit_handler(e){
    Event.stop(e)
}

Больше информации об остановке поведения стандартного события в Прототипе»

0
ответ дан 5 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

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