jquery jquery - Javascript выберите onchange = 'this.form.submit ()'





selector plugin (6)


Мои психические навыки отладки говорят мне, что ваша кнопка submit называется submit .
Поэтому form.submit относится к кнопке, а не к методу.

Переименуйте кнопку в другое, чтобы form.submit снова form.submit на метод.

У меня есть форма с выделенным и несколькими текстовыми вводами. Я хочу, чтобы форма была отправлена ​​при изменении выбора. Это работает отлично, используя следующее:

onchange="this.form.submit()"

Однако, если форма также содержит кнопку отправки, форма не будет отправляться при изменении выбора. Я догадываюсь о каком-то конфликте.

Какие у меня варианты?

Должен ли я использовать что-то вроде $(this.form).trigger("submit") ?




Вы должны иметь возможность использовать что-то похожее:

$('#selectElementId').change(
    function(){
         $(this).closest('form').trigger('submit');
         /* or:
         $('#formElementId').trigger('submit');
            or:
         $('#formElementId').submit();
         */
    });



Это можно сделать несколькими способами.

Элементы знают, к какой форме они принадлежат, поэтому вам не нужно обертывать this в jquery, вы можете просто вызвать this.form который возвращает элемент формы. Затем вы можете вызвать submit() на элементе формы, чтобы отправить его.

  $('select').on('change', function(e){
    this.form.submit()
  });

документация: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement




Использование:

<select onchange="myFunction()">

    function myFunction() {
        document.querySelectorAll("input[type=submit]")[0].click();
    }



Свяжите их с помощью jQuery и запустите jQuery с ним: http://jsfiddle.net/ZmxpW/ .

$('select').change(function() {
    $(this).parents('form').submit();
});



Использование lodash

import omit from 'lodash/omit';

const prevObject = {test: false, test2: true};
// Removes test2 key from previous object
const nextObject = omit(prevObject, 'test2');

Использование Ramda

R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}






javascript jquery select