2013-07-28 2 views
1

Я написал простую форму HTML, в которой у меня есть 2 кнопки и 2 кода javascript. вот мой код:javascript: windows.location не работает при первой кнопке

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<script> 
function test(){ 

var addr=window.location.search; 
alert(addr); 

} 

function validate(){ 
    var newaddr=window.location.search; 
    alert(newaddr); 
} 

</script> 
</head> 
<body> 
<form action=""> 

<input type="submit" id="input2" name="buttonupdate" value="update" onclick="test();"/> 
<input type="submit" id="input1" name="buttosearch" value="search" onclick="validate();"/> 

</form> 
</body> 
</html> 

То, что я хочу, по нажатию кнопки «Обновить» предупреждение должно показать имя и значение и по щелчку имени и значения кнопки поиска Кнопка поиска в кнопку обновления должно быть показано в предупреждение(). , Но что происходит на первой кнопке время нажатием кнопки обновления предупреждения является пустым, то в адресной строке изменения

http://localhost:8080/button_test/check.html?buttonupdate=update

позже, если я нажимаю на кнопку обновления он retrives вышеупомянутую URL и показывает правильное значение. Но если я нажимаю кнопку поиска то же произойдет то значение данная ссылка является retrived и адресная строка изменения

http://localhost:8080/button_test/check.html?buttosearch=search 

, как достичь желаемого результата :( любезно руководства :(

+0

что вы точно пытаетесь сделать ?? –

+0

Я хочу вызвать соответствующие функции на определенном нажатии кнопки и хочу, чтобы адрес этой кнопки щелкнул только то, что пользователь нажимает. – xyz

+0

Итак, основываясь на вашем комментарии ниже, вы хотите получить текущую цепочку, но также перенаправить? Без разницы ! – adeneo

ответ

0

Try

<input type="submit" id="input2" name="buttonupdate" value="update" onclick="test(); return false;"/> 
+0

Я хочу кнопки only..no link :( – xyz

0

это лучше всего связать событие с ним, что вы можете передать событие в качестве мишени.

в HTML,

<input type="submit" id="input2" name="buttonupdate" value="update" /> 
<input type="submit" id="input1" name="buttosearch" value="search" /> 

в JS,

function test(e){ 
    // obtain address ? 
    var addr=window.location.search; 
    // obtain value 
    var value = e.target.getAttribute("value"); 
    // obtain name 
    var name = e.target.getAttribute("name"); 
    // alert 
    alert(name + " - " + value); 
    // stop page load 
    e.preventDefault(); 
} 

function validate(e){ 
    var addr=window.location.search; 
    var value = e.target.getAttribute("value"); 
    var name = e.target.getAttribute("name"); 
    alert(name + " - " + value); 
    e.preventDefault(); 
} 

// start 
window.addEventListener('load', function() { 
    //bind event to search 
    var element = document.getElementById("input1"); 
    element.addEventListener('click', validate); 
    // bind event to update 
    var element = document.getElementById("input2"); 
    element.addEventListener('click', test); 
}); 
0

Проблема заключается в переменная поиск нуль на первом и она обновляется после отправки (это означает, что после вызова вашей функции), вы должны понять это!
Но как решение попробовать это один

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<script> 
function test(){ 

var addr=document.getElementById("input2").value; 
addr+=" "+document.getElementById("input2").name; 
alert(addr); 

} 

function validate(){ 
    var addr=document.getElementById("input1").value; 
addr+=" "+document.getElementById("input1").name; 
alert(addr); 
} 

</script> 
</head> 
<body> 
<form action=""> 

<input type="submit" id="input2" name="buttonupdate" value="update" onclick="test();"/> 
<input type="submit" id="input1" name="buttosearch" value="search" onclick="validate();"/> 

</form> 
</body> 
</html> 
0

Что об использовании this в качестве параметра для ваших функций:

<script> 
function test(button){ 
    alert(button.name + " and " + button.value); 
} 

function validate(button){ 
    alert(button.name + " and " + button.value); 
} 
</script> 
<input type="submit" id="input2" name="buttonupdate" value="update" onClick="test(this);"/> 
<input type="submit" id="input1" name="buttosearch" value="search" onClick="validate(this);"/> 
+0

здесь «это» относится к текущему объекту кнопки прямо? – xyz

+0

, это право «это» - кнопка объекта, и вы можете использовать все свойства, определенные для этого объекта. –

Смежные вопросы