1

我正在尝试将特定变量值从脚本标签传递到输入标签。但不知何故,它不起作用。

我正在尝试将variable1以下代码中的值从脚本标签传递到输入标签。

所以假设variable1值是John那么我的代码中的这一行将如下所示 -

<input ONCLICK="window.location.href='some_url&textId=John'">

下面是代码

<html>
<head>
    <title>Applying</title>
</head>
<body>

<script>
function getUrlVars() {

    // some code

}
var variable1 = getUrlVars()["parameter1"];
var variable1 = unescape(variable1);

// some more code

</script>

<input ONCLICK="window.location.href='some_url&textId=variable1'">

</body>
</html>

谁能解释我做错了什么?

4

6 回答 6

1

试试这样:

var variable1 = getUrlVars()["parameter1"];
variable1 = unescape(variable1);
document.getElementById('Apply').onclick = function() {
    window.location.href = 'some_url&textID=' + variable1;
};

这将一个函数附加到 onclick 事件,该事件完全符合您的要求。对于初始输入元素,只需删除 onclick 属性:

<input name="Apply" type="button" id="Apply" value="Apply" />
于 2013-07-27T21:36:07.663 回答
0

在 onclick 调用一个函数,在该函数内设置 window.locatio.href !

一个样品

<script>
var url="www.google.com";
function myfunc(){
alert(url);
}
</script>

<input type="button" onclick="myfunc()" value="btn" >

http://jsfiddle.net/CgKHN/

于 2013-07-27T21:45:33.500 回答
0

如果您尝试将点击处理程序绑定到此输入元素,我会将其更改为以下内容:

<html>
<head>
    <title>Applying</title>
</head>
<body>

<script>
function getUrlVars() {

    // some code

}
var variable1 = getUrlVars()["parameter1"];
var variable1 = unescape(variable1);

document.getElementById("Apply").onclick = function() {
    window.location.href='some_url&textId=' + variable1;
}

// some more code

</script>

<input name="Apply" type="button" id="Apply" value="Apply" >

</body>
</html>

我还没有测试它,但它应该可以工作。

于 2013-07-27T21:36:29.550 回答
0

如果您希望执行内联函数,则需要将代码包装在可执行闭包中:

<input name="Apply" type="button" id="Apply" value="Apply" ONCLICK="(function() {window.location.href='your_data'})();">

由于这在很大程度上无法维护,我建议您将此功能抽象到应用程序中更有条理的地方。

(function(window, $, undefined) {
  // assuming you use jQuery
  $('#Apply').click(function() {
   window.location.href = '';// your code
  })
})(window, $);

我可能完全误解了你想要做什么,但我希望这会有所帮助。

于 2013-07-27T21:38:05.147 回答
0

整个 url 参数位肯定是不必要的。

您可以在字段中设置 value 属性:

var field = document.getElementById('textfield');
var value = 'Some text';

field.addEventListener("click", function () {
    this.setAttribute('value', value);
});

这是一个 jsfiddle 示例:http: //jsfiddle.net/LMpb2/

于 2013-07-27T21:38:08.307 回答
0

您将它包含在 ' ' 中,您需要将其添加到字符串中。所以试试

         "window.location.href='some_url&textId='+variable1+';'"
于 2013-07-27T21:38:21.563 回答