我有以下表格
<form action="http://www.domain.com/processing.php?page=first§ion=77&userid=replaceme">
如何使用jquery我可以用jquery变量更新'replaceme'?
答案 0 :(得分:3)
我认为您应该使用正则表达式并匹配“userid”参数的名称,而不是“replaceme”值。
尝试:
var $form = $('form');
$form.prop('action', $form.prop('action').replace(/([\?&])(userid=)[^&#]*/, '$1$2' + newValue));
newValue
是一个变量,可以代替“替换”而保留你想要的东西。
注意:在你的html中,“&amp;” URL中的字符应替换为字符实体&
。
<强>更新强>
使用@undefined中的建议,这将是:
$('form').prop('action', function(i, action){ return action.replace(/([\?&])(userid=)[^&#]*/, '$1$2' + newValue); });
现在不需要$form
变量。
这是jsfiddle demo,显示以下情况:
正则表达式的说明:
$1
匹配'?'或'&amp;'。$2
匹配'userid ='。答案 1 :(得分:2)
首先添加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));
});
答案 2 :(得分:1)
让我们说你有以下标记:
<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.