2015-10-27 2 views
0

Я представляю форму через javascript при нажатии кнопки и перенаправляя ее на другой URL-адрес."?" символ в представленном url

кода я использую представить и перенаправить его следующим образом:

function SelectorSubmitOld(targetUrl) { 

    var f = jQuery('form').get(0); 

    jQuery("#__VIEWSTATE").remove(); 

    f.action = targetUrl; 
    f.submit(); 
} 

Откровенно говоря, этот метод был разработан каким-либо другим разработчиком, и я не знаю, что описанный выше метод делает из-за мой ограниченный JavaScript знание.

targetUrl, который я передаю в данном случае является "/home-loans/interest-rates/"

Но когда обработка завершается, и конечные загрузки страницы, URL-адрес содержит «?». Таким образом, мой окончательный URL-адрес становится "/home-loans/interest-rates/?"

«?» нежелательно, и я хочу поехать на нем.

Любые идеи?

P.S .: Раньше у меня было мало полей ввода с прикрепленным к ним атрибутом name. Из-за этого url добавлял значение к этому атрибуту.

Так, например, если входной сигнал <input type="text" class="mobile_number" name="mobile-number"> используется для использования в качестве "/home-loans/interest-rates/?mobile-number=".

Но как только я удалил атрибут name, все было в порядке. Однако "?" по-прежнему остается.

Внутренний адрес asp.net, просто чтобы вы знали.

+0

https://en.wikipedia.org/wiki/Query_string – Danmoreng

+0

вы пытаетесь положить' отладчик Did; 'заявление внутри функции и запуска поджигатель (FF)/Developer Инструменты (IE/Chrome), чтобы увидеть, что входит в параметр 'targetUrl'? Также проверьте свой код, если какие-либо модификации url происходят. –

+2

Это потому, что вы 'form method''' GET' – Rayon

ответ

2

Это происходит потому, что вы отправляете форму с использованием метода GET.
Вы можете использовать метод POST вместо:

<form method="POST"></form> 

Однако, похоже, что вы не хотите, чтобы представить какие-либо данные с помощью этой формы.
Если я прав, то вы можете просто использовать document.location.href для того, чтобы перейти на другую страницу:

document.location.href = targetUrl; 
+0

Спасибо за ваш ответ. Могу ли я сделать что-то, что не связано с изменением функции? Причина в том, что функция используется во многих местах, а создание кода кнопки, использующее эту функцию, также централизовано и используется многими страницами. – samar

1

Если вы не хотите отправлять какие-либо параметры запроса вместе с URL, вы можете добавить метод =» POST»к элементу формы, что-то вроде этого

jQuery('form').attr('method', 'POST')