Это проблема кеша браузера? - PullRequest
1 голос
/ 07 октября 2010

Можете ли вы проверить, если это проблема с кэшем браузера?

У меня есть такой сценарий, у меня есть таблица, которая отображает такие данные, и ниже, это ссылка, которая отправляет вас на другой URL. Одновременно можно щелкнуть только одну строку.

<table>
    <thead>
        .
        .
    </thead>
    <tbody>
        <tr>
            <td><input type=""checkbox" value="1" name="_chk"/></td>
            <td>Field1</td>
            <td>Field2</td>
        </tr>
    </tbody>
</table>
<a href="/myApp/url.htm" id="myLink">Change</a>

При нажатии на ссылку я добавляю текущий идентификатор клика в атрибут href, используя jquery

$(document).ready(function(){
    $("#myLink").click(function(){
        var transID = $("input[name='_chk']:checked").val();
        var currHref = $(this).attr("href");

        $(this).attr("href", currHref + "?transID=" +transID);
    });
});

При первом щелчке его ok и идентификатор транзакции добавляются в качестве параметра к новой строке URL-адреса, например так:

Проблема в том, что когда я нажимаю кнопку "Назад", а затем щелкаю другую строку, строка параметра URL удваивается как это /myApp/url.htm?transID=1?transID=2

Это проблема с кэшем браузера и есть ли обходной путь для этого?

Ответы [ 2 ]

2 голосов
/ 07 октября 2010

Да, это состояние javascript / html, которое кэшируется браузерами.Если вы передаете значения из того, что должно было быть элементом управления формы между страницами, я предлагаю вам использовать способ по умолчанию, который заключается в использовании формы и кнопки отправки.

Если вы настаиваете на использовании Javascript, то не получите атрибут "href", жестко закодируйте URL (не получайте его из атрибута href), добавьте параметры и перенаправьте на эту страницу с помощью Javascript.

Попробуйте, если это работает (но это просто быстрое исправление вашего кода):

$(document).ready(function(){
    $("#myLink").click(function(){
        var transID = $("input[name='_chk']:checked").val();
        var currHref = "/myApp/url.htm";

        $(this).attr("href", currHref + "?transID=" +transID);
    });
});
1 голос
/ 07 октября 2010

Попробуйте это ...

$(document).ready(function() {
    var baseUrl = "/myApp/url.htm";

    $("#myLink").click(function(){
        var transID = $("input[name='_chk']:checked").val();
        $(this).attr("href", baseUrl + "?transID=" +transID);
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...