Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Действие при нажатии на строку (https://javascript.ru/forum/events/24518-dejjstvie-pri-nazhatii-na-stroku.html)

D7na 04.01.2012 02:08

Действие при нажатии на строку
 
Здравствуйте дорогие форумчане!

У меня возникла следующая проблема.

Имеется скрипт:

$(document).ready(function() {
      $('table.values tr').click(function() {
      $.post("/Task/Edit/", { taskID: $(this).find('input.rowID').val() });
});
});


Как сделать что-бы после отработки скрипта, строка выглядела следующим образом:

http://localhost:12181/Task/Edit/8

По каким причинам такая конструкция может не работать?

В скрипт передается значение, из скрытого поля в aspx-файле:

Код:

<table class="values">
<tr>
<th>Title</th>
<th>Created Date</th>
<th>Desciption</th>
<th>ID</th>
</tr>

<tbody>
<%
foreach (Task t in (IEnumerable<Task>) ViewData["Tasks"])
{%>
<tr>
<input type="hidden" class="rowID" value="<%=t.TaskId%>"/>
<td><%=t.Title%></td>
<td><%=t.CreatedOn.ToShortDateString()%></td>
<td><%=t.Text%></td>
<td><%=t.TaskId%></td>
</tr>
<%
}%>
</tbody>
</table>


Но при запуске, и нажатии на строку, ничего не происходит.

FireBug показывает, что полю value, присваивается значение.


Код:

<tr>
<input type="hidden" class="rowID" value="7"/>
<td>111</td>
<td>20.11.2011</td>
<td>12345678900</td>
<td>7</td>
</tr>


Исправил скрипт на отправку методом .get:

$(document).ready(function () {
$('table.values tr').click(function () {
$.get("/Task/Edit/", {TaskId: $(this).find('input.rowID').val()});
    });
});


Результаты, те же.

И собственно вот такие ошибки:

Javascript Intellisense Message: C:\...\Scripts\listing.js(1:0) : Ожидалась функция
Javascript Intellisense Message: JSIntellisense:Internal/(2:4) : Function expected
Javascript Intellisense Message: JSIntellisense:Internal/(2:4) : Function expected
Javascript Intellisense Message: JSIntellisense:Internal/(3:7) : '$' is undefined
Javascript Intellisense Message: C:\...\Scripts\jquery-1.5.1-vsdoc.js(4758:66) : Истекло время ожидания JScript IntelliSense. Набор результатов может быть ограничен
Javascript Intellisense Message: C:\...\Scripts\jquery-1.5.1-vsdoc.js(4758:1) : Требуется объект

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

Slawaq 05.01.2012 05:21

ссылка на
http://localhost:12181/Task/Edit/8
меня уничтожила, сорри за оффтоп, но это же слишком...

D7na 05.01.2012 11:14

Чем именно она Вам не понравилась? Это не ссылка с примером, который вы смогли бы посмотреть. Я лишь привет вид ссылки который должен получиться в итоге. Она означает, что нужно добавлять к адресу получаемое значение из скрытого поля ("/Task/Edit/" + $(this).find('input.rowID').val()). Не более.

Slawaq 05.01.2012 14:40

ну хоть я не силён в jquery)) но могу сказать, получите объект, и пропишите ему функцию onclick=function(){window.location.href = "?ваше число";} , ну и всё, в итоге выходит http://ваш.сайт/страница.хтмл?4 это если у вас это числоа как параметр, если число указывает на страницу, тогда onclick=function(){window.location= "ваше число";}
и тогда с такого http://ваш.сайт/ мы получаем http://ваш.сайт/4

D7na 05.01.2012 15:40

Slawaq,
$('table.values tr').click(); // По клику на <tr> в таблице с классом values,
$(this).find('input.rowID').val(); // Выхватывает значение из поля (input) с классом .rowID,
$.get() // Осуществляет запрос методом GET на страницу, находящуюся по следующему пути: "/Task/Edit/", отправляя данные, взятые из поля 'input.rowID'. По моему, это и так должно работать, не так ли?

D7na 07.01.2012 19:07

Ни у кого на форуме нет никаких соображений?

nerv_ 07.01.2012 19:13

D7na, я с jquery пока не дружу. Даже не уверен, что название правильно написал)
Цитата:

Сообщение от D7na
Как сделать что-бы после отработки скрипта, строка выглядела следующим образом:

Какая строка? (ссылка в первом посте не рабочая) Попробуйте сформулировать задачу еще раз.

Saqsess 07.01.2012 19:38

Забавно. :)
Цитата:

Сообщение от nerv_
Какая строка? (ссылка в первом посте не рабочая)

Цитата:

Сообщение от D7na
Это не ссылка с примером, который вы смогли бы посмотреть. Я лишь привет вид ссылки который должен получиться в итоге.


D7na 08.01.2012 00:56

Что в этом скрипте:

$(document).ready(function () {
    $('table.values tr').click(function () {
        $.get("/Task/Edit/", { TaskId: $(this).find('input.rowID').val()
        });
    });
});


Означает TaskId: ?

Saqsess 08.01.2012 08:21

jQuery.get()
Запрос
$.get("test.php", { name: "John", time: "2pm" } );

будет преобразован в /test.php?name=John&time=2pm
У вас скорее всего по аналогии.


Часовой пояс GMT +3, время: 12:51.