2

私は次のフォームを持っています

<form action="http://www.domain.com/processing.php?page=first&section=77&userid=replaceme">

jqueryを使用して「replaceme」をjquery変数で更新するにはどうすればよいですか?

4

3 に答える 3

3

「replaceme」値ではなく、正規表現を使用して「userid」パラメーターの名前と一致させる必要があると思います。

試す:

var $form = $('form');
$form.prop('action', $form.prop('action').replace(/([\?&])(userid=)[^&#]*/, '$1$2' + newValue));

newValue「replaceme」の代わりに必要なものを保持する変数はどこにありますか。

注:HTMLでは、URLの「&」文字を文字エンティティに置き換える必要があります&amp;

アップデート:

@undefinedからの提案を使用すると、これは次のようになります。

$('form').prop('action', function(i, action){ return action.replace(/([\?&])(userid=)[^&#]*/, '$1$2' + newValue); });

$formこれで、変数は必要ありません。

これは、次のケースを示すjsfiddleデモです。

  1. 「userid」パラメーターは、少なくとも1つの他のパラメーターの後の最後のパラメーターです。
  2. 「userid」パラメーターは中央のパラメーターであり、その前にパラメーターがあり、後ろに別のパラメーターがあります。
  3. 「userid」パラメーターは最初のパラメーターであり、その後に他のパラメーターがあります。
  4. 「userid」で終わる名前のパラメーターがありますが、これを置き換えることはできません。
  5. URLの最後、「userid」パラメータの直後に#tagがあります。

正規表現の説明:

  • 最初のグループ$1は「?」と一致します また '&'。
  • 2番目のグループ$2は'userid='と一致します。
  • 次に、「&」または「#」のいずれかに到達するまで、または文字列の終わりまで、文字が照合されます。
于 2013-03-16T00:43:42.310 に答える
2

最初にIDを追加します。

<form id="myForm" action="http://www.domain.com/processing.php?page=first&section=77&userid=replaceme">

次に、DOMの準備ができました:

$(function() {
    var $form = $('#myForm');
    var someVar = 'foo';
    $form.attr('action', $form.attr('action').replace('replaceme', someVar));
});

デモ: http: //jsfiddle.net/HBQcx/

于 2013-03-16T00:27:18.647 に答える
1

次のマークアップがあるとしましょう。

  <form id="testform" action="http://www.domain.com/processing.php?page=first&section=77&userid=replaceme">
</form>

属性のテキストを変更したいaction::

action = $('#testform').attr('action');//get the action attribute.
console.log(action);
action = action.replace('replaceme','changed');//change the action text.
$('#testform').attr('action',action);//change the action attribute.
console.log($('#testform').attr('action'));//test the results.
于 2013-03-16T00:34:46.987 に答える