Ответ 1
Одним быстрым способом будет $('#myform_id #submitButtonID').click();
Я хочу использовать jQuery для отправки моей формы, и я могу сделать это так
$('#myform_id').submit();
и все это хорошо, но обычно кто-то нажимает кнопку отправки, чем кнопка отправки, имеет значение, поэтому, когда я отправляю через jQuery, мне также нужно установить значение представления, как я это делаю?
ИЗМЕНИТЬ
как было отмечено в некоторых ответах, я мог бы это сделать, моделируя щелчок пользователя, но я не хочу делать это, я хочу передать значение submit, когда я использую команду .submit(), если это возможно
в конечном счете submit, используя форму ajax
** Уточнение **
ok, поэтому у меня есть настройка jQuery для использования проверки jquery и у меня есть обработчик отправки
$("#myform_id").validate({
submitHandler: function() {
run_ajax(obj);
}
});
то, что вызывает функцию I, я вызываю run_ajax pass и объект, содержащий информацию о том, какой тип ajax я хочу и что у вас есть.
и в конечном итоге запускает этот
obj.formitem.ajaxSubmit({
dataType:'json',
data: obj.pdata,
});
где
obj.formitem == $('#myform_id');
поэтому, когда форма отправляет все, что происходит, все хорошо.
поэтому я загружаю страницу с этой формой в диалог jquery, и я хочу, чтобы они могли щелкнуть по кнопке в диалоговом окне, которое запускает форму отправки, а также сообщает форме, какой тип отправки был запрошен.
надеюсь, теперь это ясно извините за путаницу
Одним быстрым способом будет $('#myform_id #submitButtonID').click();
fooobar.com/questions/105307/... работал у меня
Хорошо, я сделал это так:
$('<input />').attr('type', 'hidden')
.attr('name', 'myButton')
.attr('value', 'MyButton')
.appendTo('#my-form');
$('#my-form').submit();
.submit()
предоставит вам традиционную отправку, которая будет выполнять POST/GET при обновлении страницы.
Для ajax вам нужно будет использовать $.post, $.get или $.ajax - например:
var aaa = $("#your_form").serialize();
$.post("your_url",aaa,function(response){/*do something*/},"json");
Что касается нажатия кнопок, если у вас есть несколько кнопок, которые могут отправить одну форму. Вы можете использовать скрытые поля как часть формы. Перед отправкой формы измените скрытое поле в соответствии с нажатой кнопкой.
$(".submit_buttons").click(function(){
$("#my_hidden_input").val($(this).attr("rel"));
/*
above serialize and ajax post code
*/
});
HTML:
<input type="button" class="submit_buttons" rel="special_button1" value="Button 1"/>
<input type="hidden" id="my_hidden_input" />
Когда я использую этот плагин проверки, вот как я это делаю.
$("#right_form").validate(); //To add validation to the form
validate9 = $("#right_form").validate().form(); //Check if the form validates
Затем используйте if
для проверки validate9 is true
и отправьте с помощью $.post()
.
Обычный ajax довольно прост.
Несколько причин, почему я думаю, что вы, вероятно, используете iframe для отправки формы:
1). Это должно быть сделано таким образом (некоторые неизменные требования).
2). Вы хотите загрузить некоторые файлы с помощью ajax.
Ссылка: Ограничения JS iframe.
Не уверен, что это поможет, но, если вы это выясните, отправьте ответ, чтобы сообщить нам, как вы позаботились об этом.
$('#myform').submit(function(event){
/* stop form from submitting normally */
event.preventDefault();
// get form data and include value from submit button
var post_data = form.serializeArray();
post_data.push({name: event.originalEvent.explicitOriginalTarget.name,
value: event.originalEvent.explicitOriginalTarget.value
});
// ...
}
Значение отправки просто передается как параметр. Поэтому, если у вас есть:
<input type="submit" name="mysubmit" value="click"/>
тогда запрос будет содержать параметр запроса mysubmit = click.
Поэтому просто добавьте скрытый тип ввода, например:
<input type="hidden" name="mysubmit" value="click"/>
Вы можете добавить кнопку Submit
в свою форму и эмулировать щелчок по кнопке. Разве это не решение вашей цели.
Это должно сделать трюк:
$('#form_id #submitbutton_id').val('your value');