私は次のフォームを持っています
<form action="http://www.domain.com/processing.php?page=first§ion=77&userid=replaceme">
jqueryを使用して「replaceme」をjquery変数で更新するにはどうすればよいですか?
私は次のフォームを持っています
<form action="http://www.domain.com/processing.php?page=first§ion=77&userid=replaceme">
jqueryを使用して「replaceme」をjquery変数で更新するにはどうすればよいですか?
「replaceme」値ではなく、正規表現を使用して「userid」パラメーターの名前と一致させる必要があると思います。
試す:
var $form = $('form');
$form.prop('action', $form.prop('action').replace(/([\?&])(userid=)[^&#]*/, '$1$2' + newValue));
newValue
「replaceme」の代わりに必要なものを保持する変数はどこにありますか。
注:HTMLでは、URLの「&」文字を文字エンティティに置き換える必要があります&
。
アップデート:
@undefinedからの提案を使用すると、これは次のようになります。
$('form').prop('action', function(i, action){ return action.replace(/([\?&])(userid=)[^&#]*/, '$1$2' + newValue); });
$form
これで、変数は必要ありません。
これは、次のケースを示すjsfiddleデモです。
正規表現の説明:
$1
は「?」と一致します また '&'。$2
は'userid='と一致します。最初にIDを追加します。
<form id="myForm" action="http://www.domain.com/processing.php?page=first§ion=77&userid=replaceme">
次に、DOMの準備ができました:
$(function() {
var $form = $('#myForm');
var someVar = 'foo';
$form.attr('action', $form.attr('action').replace('replaceme', someVar));
});
デモ: http: //jsfiddle.net/HBQcx/
次のマークアップがあるとしましょう。
<form id="testform" action="http://www.domain.com/processing.php?page=first§ion=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.