У меня есть контактная форма (Drupal Webform), которая включает в себя загрузку файла, которая создает форму, содержащую эту разметку (в этом примере я разделил имя, размер и идентификатор attr):jQuery mousedown не работает над кнопкой отправки файла
<div class="form-managed-file">
<input type="file" class="form-file">
<input type="submit" value="Upload" class="form-submit ajax-processed">
<input type="hidden" value="0">
</div>
Я бы хотел, чтобы кнопка загрузки автоматически включалась при загрузке файла. Я делал это в прошлом, с помощью функции, как это, но он не работает на этом одном:
$('.webform-client-form').on('change', 'input.form-file', function() {
$(this).next('input[type="submit"]').mousedown();
});
Однако они работают в этой форме:
$('.webform-client-form').on('change', 'input.form-file', function(){
$(this).next('input[type="submit"]').css("background", "red");
alert($(this).next('input[type="submit"]').val());
});
Первый дает кнопку красным задний план. Второе предупреждение «Загрузить». Почему мышь не работает? Я также использовал click()
trigger("click")
и trigger("mousedown")
, но ни один из них не нажимает кнопку загрузки. Я использую jQuery 1.10.
Скорее попробуйте отправить форму на изменение? '$ ('. Webform-client-form'). On ('change', 'input.form-file', function() { // отправьте форму }); ' –
Поскольку submit (появляется) отправляет только форму, вы можете напрямую вызвать' form.submit() '. –
Поле загрузки является частью формы, которая также имеет несколько текстовых полей, поэтому я не хочу отправлять форму. У меня есть три разных поля файла, такие как выше в форме. Поэтому я не хочу отправлять форму, пока пользователь не нажмет кнопку отправки формы. Но если пользователь выбирает файл и не нажимает кнопку загрузки, файл не отправляется при отправке формы. Вот почему я хочу, чтобы она автоматически загружалась при выборе файла. – user2969934