нужна помощь в передаче переменных в $ (# кое-что) .submit (function (e) { - PullRequest
0 голосов
/ 13 января 2012

Я новичок в jQuery и у меня есть пара проблем с этим кодом:

var theCommentId = '';
var buildFormName = '';

$('.comment_submit').bind('click', function() {
    theCommentId = $(this).attr('this_id');
    buildFormName = ('#AddMessageForm_' + theCommentId);
}); 

alert(buildFormName);

Это возвращает '# AddMessageForm_1' (или 2 или 234 в зависимости от того, какая кнопка нажата).Эта часть работает отлично.

Но тогда мне нужно передать здесь buildFormName, чтобы я мог обрабатывать несколько форм с разными именами.Имена форм генерируются динамически из номера идентификатора, который добавляется к addMessageForm

$(buildFormName).submit(function(e) {
    // process form data here...
    $.post('process.php', $(this).serialize(), function(msg) {
    }

. Выше не возвращает ошибок, но $this пусто, и я не могу создать строку БД из пустой $this!это работает, если я не пытаюсь передать туда переменную buildFormName.пример:

$('#addMessageForm_1').submit(function(e) {
    // process form data here...
    $.post('process.php',$(this).serialize(),function(msg){
    }

Это прекрасно работает.Я надеюсь, что мне здесь не хватает чего-то простого.Любая помощь с благодарностью!

Спасибо!

Ответы [ 2 ]

1 голос
/ 13 января 2012

Вы должны создать обработчик отправки как отдельную функцию, а затем использовать его. Попробуйте это.

$('.comment_submit').bind('click',function(){
    theCommentId = $(this).attr('this_id');

    buildFormName = ('#AddMessageForm_' + theCommentId);

    $(buildFormName).submit(formSubmitHandler);
}); 

function formSubmitHandler(){
   // process form data here...

   $.post('process.php',$(this).serialize(),function(msg){

   }
}
0 голосов
/ 13 января 2012

Попробуйте заменить this на e.target, посмотрите, поможет ли это.

$(buildFormName).submit(function(e) {
    // process form data here...
    $.post('process.php', $(e.target).serialize(), function(msg) {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...