我有以下表格,
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ListAdapter adapter =new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,values);
setListAdapter(adapter);
getListView().setOnItemClickListener(this);
}
我想在选择下拉列值时更改lang的值
这是我的javascript函数,
<form:form method="POST" commandName="language">
<table>
<tr>
<td>Language:</td>
<td>
<form:select path="languageName" id="mySelect" onchange="myFunction(this.value)">
<form:option value="" label="...." />
<form:options items="${languages}" />
</form:select>
</td>
<td>
<form:errors path="languageName" cssStyle="color: #ff0000;" />
</td>
</tr>
<tr>
<td>
<a id="demo" href="/eidsar/openid-authn-request?type=ident&lang=">OpenID 2.0 Identification</a> <br>
<a href="/eidsar/openid-authn-request?type=auth&lang=">OpenID 2.0 Authentication</a> <br>
<a href="/eidsar/openid-authn-request?type=auth-ident&lang=">OpenID 2.0 Identification and Authentication</a> <br>
</td>
</tr>
<tr>
</table>
</form:form>
但是当我点击href链接时,我无法在网址中发送语言值。 任何帮助,将不胜感激。 请不要将其标记为重复,因为我没有找到相同的正确答案。
答案 0 :(得分:2)
您需要这样做,将结果分配回
document.getElementById("demo").href = '...';
此外,您的函数还有另一个缺陷,即链接无法正确重置,每次选择更改时都会增加,因此这里有一种方法可以解决原始href
存储和重用的问题。
function myFunction(val) {
var elem = document.getElementById('demo');
if (!elem.hasAttribute('data-href')) {
elem.setAttribute('data-href', elem.href);
}
elem.href = elem.getAttribute('data-href')+val));
}
我想您想要更改所有链接,因此这是使用现有标记的简单方法
function myFunction(val) {
var elem = document.getElementById('demo');
var children = elem.parentNode.children;
for (var i = 0; i < children.length; i++) {
setHref(children[i],val);
}
}
function setHref(elem,val) {
if (!elem.hasAttribute('data-href')) {
elem.setAttribute('data-href', elem.href);
}
elem.href = elem.getAttribute('data-href')+val));
}
答案 1 :(得分:1)
如果是这种情况,
<a id="demo"...>..</a>
然后您可以通过into JavaScript function
,
var pastLink = document.getElementById("demo").getAttribute("href");
document.getElementById("demo").href = pastLink + "someNewLink.html";
答案 2 :(得分:1)
try something like:
function method(val){
//capture elements wanna change
try{
var link = document.getElementById("mylink");
//check value selection
if(val == 'x'){
link.innerHTML = "facebook";,
link.setAttribute('href', "http://facebook.com ?lang= somevalue");
}else if(...){
....
}
}catch(err){
//just to show you differents ways to capture errors
console.log(err.message)
//or
document.getElementById("some_div_for_message").innerHTML = err.message;
}
return false;
}
答案 3 :(得分:1)
var href= document.getElementById("demo").href;
function myFunction(href, val) {
document.getElementById("demo").href = href + val;
/* var text = document.getElementById("demo").getAttribute("href")+val;
document.getElementById("demo").href = text; */
// document.getElementById("demo").href.replace(document.getElementById("demo").getAttribute("href"), document.getElementById("demo").getAttribute("href")+val);
// alert( document.getElementById("demo").href.replace(document.getElementById("demo").getAttribute("href"), document.getElementById("demo").getAttribute("href")+val));
}
你可以在这篇文章中看到thios问题 How to change the href for a hyperlink using jQuery 期待它可以帮助你