Динамически изменяемый URL-адрес действия формы не оказывает влияния - PullRequest
4 голосов
/ 11 сентября 2010

Когда URL-адрес действия формы изменялся динамически, при отправке формы он по-прежнему будет использовать URL-адрес действия по умолчанию, кто-нибудь знает почему? Пожалуйста, смотрите простой пример ниже:

<form action="test.php" method="get" id="test">
  <select name="id" onChange="formSubmit(this)">
    <option value="abc">abc</option>
    <option value="xyz">xyz</option>
  </select>
</form>

<script type="text/javascript">
function formSubmit(element){
  var url = $("#test").attr("action", url);
  var newParam = "&new=123";

  url += "?" + element.name + "=" + element.value + newParam;
  //e.g. formurl now = 'test.php?id=xyz&new=123';

  $("#test").attr("action", url);
  $("#test").submit();//the form will submit to test.php?id=xyz instead of the new URL
}
</script>

Thx.

1 Ответ

6 голосов
/ 11 сентября 2010

Вы присваиваете пустое значение переменной url, изначально в первой строке:

var url = $("#test").attr("action", url);

Должно быть:

var url = $("#test").attr("action");

Вам также необходимо получить элемент form с get или [0] сокращением:

$("#test")[0].submit();

Вот как должна выглядеть ваша функция:

function formSubmit(element){
  var url = $("#test").attr("action");
  var newParam = "&new=123";
  url += "?" + element.name + "=" + element.value + newParam;
  $("#test").attr("action", url);
  $("#test")[0].submit();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...