Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript更改onclick值_Javascript_Html - Fatal编程技术网

使用javascript更改onclick值

使用javascript更改onclick值,javascript,html,Javascript,Html,我对JS还很陌生,也许这是一个非常平庸的问题,但我仍然不知道是什么错。我有以下简单的html代码: <span>1</span> <input id="check1" type="radio" value="a1"/> <span>2</span> <input id="check2" type="radio" value="b2"/> <span>3</span> <input id="che

我对JS还很陌生,也许这是一个非常平庸的问题,但我仍然不知道是什么错。我有以下简单的html代码:

<span>1</span>
<input id="check1" type="radio" value="a1"/>
<span>2</span>
<input id="check2" type="radio" value="b2"/>
<span>3</span>
<input id="check3" type="radio" value="c3"/>
<span>4</span>
<input id="check4" type="radio" value="a4"/>
<span>5</span>
<input id="check5" type="radio" value="b5"/>

<input id="red" type="button" value="Go" onclick=""/>
你可以找到一把JS小提琴。 我想做的是像对图像一样设置onclick属性,使用getElementById,然后设置其源代码,所以我编写了document.getElementById('red')。onclick=“window.open('random page')”,但由于某种原因,我不明白它不起作用

问题:

1) 正如您在我的代码中所看到的,我编写了一个location.href='address',显然不需要等待用户单击按钮,因此这不是一个解决方案,我如何才能做到这一点

2) 有没有办法使这段代码更具可伸缩性?我的意思是,将来如果我想添加另一台收音机,我必须手动修改代码并插入另一台,如果我考虑了以下情况:

var radio = document.getElementByName('radio') //not sure if this is the right getElement
for (var i=1; i<radio.lenght; i++){
   if radio[i].checked{ //is this right?
      for (var n=i+1; n<radio.lenght; n++){
          if radio[n].checked{
             document.getElementById('red').onclick="window.open('random page')"
          }
       }
 }
var radio=document.getElementByName('radio')//不确定这是否是正确的getElement
对于(var i=1;i
这段代码将函数绑定到id='red'元素的onclick事件。因此,添加一组这样的条件,并在选中/取消选中任何单选按钮时更改onclick绑定


此代码将函数绑定到id='red'的元素的onclick事件。因此,添加一组此类条件,并在选中/取消选中任何单选按钮时更改onclick绑定。

在JS Fiddle中尝试此操作。它包含如何侦听按钮的onclick事件并获取单选按钮的选中值

HTML部分:

    <form action="">
    <input type="radio" name="vehicle" value="Yes" id='yes'>Yes<br>
    <input type="radio" name="vehicle" value="No" id='no'>No
    </form>
    <input id="red" type="button" value="let's go"/>
    <form action="">
        <input type="radio" name='redirect' value='https://www.google.com/' id='google'>Google<br />
        <input type="radio" name='redirect' value='http://www.jsfiddle.net/' id='jsFiddle'>JS Fiddle<br />
        <input type="radio" name='redirect' value='https://www.facebook.com/' id='Facebook'>Facebook
    </form>

    <input id="red" type="button" value="let's go"/>
如果使用单选按钮,并且希望用户一次只能选择一个,则必须为其设置相同的名称属性

您还可以使用单选按钮的value属性来存储重定向URL

这里有一个更有用的例子

HTML部分:

    <form action="">
    <input type="radio" name="vehicle" value="Yes" id='yes'>Yes<br>
    <input type="radio" name="vehicle" value="No" id='no'>No
    </form>
    <input id="red" type="button" value="let's go"/>
    <form action="">
        <input type="radio" name='redirect' value='https://www.google.com/' id='google'>Google<br />
        <input type="radio" name='redirect' value='http://www.jsfiddle.net/' id='jsFiddle'>JS Fiddle<br />
        <input type="radio" name='redirect' value='https://www.facebook.com/' id='Facebook'>Facebook
    </form>

    <input id="red" type="button" value="let's go"/>

谷歌
JS小提琴
脸谱网
JS部分:

    document.getElementById('red').onclick = function() {
       if (document.getElementById('yes').checked) {
           alert('I have a Vehicle.');
       } else if(document.getElementById('no').checked) {
           alert('I don\'t have a Vehicle.');
       } else {
           alert('No answer.');
       }
   }
    document.getElementById('red').onclick = function() {
       var options = document.getElementsByName('redirect'),
           length = options.length,
           i = 0;

       for (i; i < length; i++) {
           if (options[i].checked) {
               window.open(options[i].value);
           }
       }
    }
document.getElementById('red')。onclick=function(){
var options=document.getElementsByName('redirect'),
长度=选项。长度,
i=0;
对于(i;i
在JS Fiddle中尝试一下。它包含如何监听按钮的onclick事件并获取单选按钮的选中值

HTML部分:

    <form action="">
    <input type="radio" name="vehicle" value="Yes" id='yes'>Yes<br>
    <input type="radio" name="vehicle" value="No" id='no'>No
    </form>
    <input id="red" type="button" value="let's go"/>
    <form action="">
        <input type="radio" name='redirect' value='https://www.google.com/' id='google'>Google<br />
        <input type="radio" name='redirect' value='http://www.jsfiddle.net/' id='jsFiddle'>JS Fiddle<br />
        <input type="radio" name='redirect' value='https://www.facebook.com/' id='Facebook'>Facebook
    </form>

    <input id="red" type="button" value="let's go"/>
如果使用单选按钮,并且希望用户一次只能选择一个,则必须为其设置相同的名称属性

您还可以使用单选按钮的value属性来存储重定向URL

这里有一个更有用的例子

HTML部分:

    <form action="">
    <input type="radio" name="vehicle" value="Yes" id='yes'>Yes<br>
    <input type="radio" name="vehicle" value="No" id='no'>No
    </form>
    <input id="red" type="button" value="let's go"/>
    <form action="">
        <input type="radio" name='redirect' value='https://www.google.com/' id='google'>Google<br />
        <input type="radio" name='redirect' value='http://www.jsfiddle.net/' id='jsFiddle'>JS Fiddle<br />
        <input type="radio" name='redirect' value='https://www.facebook.com/' id='Facebook'>Facebook
    </form>

    <input id="red" type="button" value="let's go"/>

谷歌
JS小提琴
脸谱网
JS部分:

    document.getElementById('red').onclick = function() {
       if (document.getElementById('yes').checked) {
           alert('I have a Vehicle.');
       } else if(document.getElementById('no').checked) {
           alert('I don\'t have a Vehicle.');
       } else {
           alert('No answer.');
       }
   }
    document.getElementById('red').onclick = function() {
       var options = document.getElementsByName('redirect'),
           length = options.length,
           i = 0;

       for (i; i < length; i++) {
           if (options[i].checked) {
               window.open(options[i].value);
           }
       }
    }
document.getElementById('red')。onclick=function(){
var options=document.getElementsByName('redirect'),
长度=选项。长度,
i=0;
对于(i;i
解释?解释总是有助于获得更好的答案。真的要添加一些解释。我想解释是,当我只是传递字符串时,onclick仅接受函数作为参数。对不起,我已经不活动了一段时间。不管怎样,我添加了解释,如果还有什么不清楚,请告诉我。解释?解释anation总是有助于找到更好的答案。真的添加了一些解释。我猜解释是onclick只接受函数作为参数,而我只是传递字符串。对不起,我已经不活动了一段时间。不管怎样,我添加了解释,如果还有什么不清楚的地方,请告诉我。如果我理解正确,onclick只接受函数作为参数cept function as value?这是如何向JS中按钮上的单击浏览器事件添加侦听器的。当onclick启动时,将执行分配给onclick属性的函数。欢迎光临。请注意,我对其进行了编辑,并给出了问题重定向部分的示例。如果我理解正确,onclick仅接受函数作为值?这是如何向JS中按钮上的“单击浏览器”事件添加侦听器的。当onclick启动时,将执行分配给onclick属性的函数。欢迎光临。请注意,我对其进行了编辑,并给出了问题重定向部分的示例。