параметр значения не передается с помощью jquery? - PullRequest
0 голосов
/ 17 сентября 2010
<textarea name="inputField" id="inputField" tabindex="1" rows="2" cols="40"onblur="DoBlur(this);" onfocus="DoFocus(this);" ></textarea>
<input class="submitButton inact" name="submit" type="submit" value="update" disabled="disabled" />
<input name="status_id" type="hidden">

javascript (jquery):

function insertParamIntoField(anchor, param, field) {
       var query = anchor.search.substring(1, anchor.search.length).split('&');

       for(var i = 0, kv; i < query.length; i++) {
          kv = query[i].split('=', 2);
          if (kv[0] == param) {
             field.value = kv[1];
             return;
          }
       }
    }


$(function () {
    $("a.reply").click(function (e) {
       console.log("clicked");
       insertParamIntoField(this,"status_id",$("#status_id"));
       insertParamIntoField(this, "replyto", $("#inputField")[0]);


     $("#inputField").focus()

$("#inputField").val($("#inputField").val() + ' ');


     e.preventDefault();
       return false; // prevent default action
    });
});

параметр status_id не передается:

post.php?reply_to=@muna&status_id=345667

он всегда дает значение ноль, когда его значениедать 345667

Ответы [ 3 ]

0 голосов
/ 17 сентября 2010

добавить значение для ввода

<input name="status_id" id="status_id" value="345667" type="hidden">
0 голосов
/ 17 сентября 2010

У вас две проблемы, первая из упомянутых @Guffa, вам нужен идентификатор для $("#status_id") для работы, например:

<input id="status_id" name="status_id" type="hidden">

Другая здесь:

insertParamIntoField(this,"status_id",$("#status_id"));
insertParamIntoField(this, "replyto", $("#inputField")[0]);

Обратите внимание, что у вас нет [0], поэтому вы устанавливаете .value для объекта jQuery, а не для самого элемента.Вместо этого вам нужно:

insertParamIntoField(this,"status_id",$("#status_id")[0]);
insertParamIntoField(this, "replyto", $("#inputField")[0]);

Или измените свой метод на использование .val(), например так:

field.val(kv[1]);

И удалите1020 * звонков, поэтому они просто

insertParamIntoField(this,"status_id",$("#status_id"));
insertParamIntoField(this, "replyto", $("#inputField"));
0 голосов
/ 17 сентября 2010

У вас нет id в поле, поэтому при попытке установить значение с помощью $('#status_id') оно нигде не будет помещено.

Добавьте идентификатор в поле:

<input name="status_id" id="status_id" type="hidden">
...