我试图在用户点击sharepoint调查中的“完成”后指示。但是,当用户单击“响应此调查”时,将执行以下代码。知道发生了什么。
<script type="text/javascript">
function redirect()
{
var inputcCtrls = document.getElementsByTagName("input");
for(var m=0; m<inputcCtrls.length; m++)
if(inputcCtrls[m].type=='button'&&inputcCtrls[m].value=='Finish')
var funcOnClick = inputcCtrls[m].onclick;
inputcCtrls[m].onclick = window.location = "http://www.google.com/";
}
redirect();
</script>
答案 0 :(得分:2)
我不知道javascript,但在c#代码块
var funcOnClick = inputcCtrls[m].onclick;
inputcCtrls[m].onclick = window.location = "http://www.google.com/";
需要在括号中,因为if语句仅适用于下一行代码,因此以下内容可以正常工作
if(inputcCtrls[m].type=='button'&&inputcCtrls[m].value=='Finish')
{
var funcOnClick = inputcCtrls[m].onclick;
inputcCtrls[m].onclick = window.location = "http://www.google.com/";
}
答案 1 :(得分:1)
感谢格雷厄姆的回答。 变化:
for(var m=0; m<inputcCtrls.length; m++)
if(inputcCtrls[m].type=='button'&&inputcCtrls[m].value=='Finish')
var funcOnClick = inputcCtrls[m].onclick;
inputcCtrls[m].onclick = window.location = "http://www.google.com/";
到
for(var m=0; m<inputcCtrls.length; m++) {
if(inputcCtrls[m].type=='button'&&inputcCtrls[m].value=='Finish') {
var funcOnClick = inputcCtrls[m].onclick;
inputcCtrls[m].onclick = function () { window.location = "http://www.google.com/" };
}
}
onclick需要一个功能。这就是为什么我总是使用parathesis,无论它是否是一行。
答案 2 :(得分:0)
为按钮分配一个唯一的类名并使用document.getElementsByClassName
比循环所有输入以获得正确的类更容易。
var inputcCtrls = document.getElementsByClassName("finalButton");
inputcCtrls[0].onclick = function() {
window.location = "http://www.google.com/";
}