Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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
如何将参数值设置为“a”;onClick";使用javascript或jquery的函数_Javascript_Jquery_Html - Fatal编程技术网

如何将参数值设置为“a”;onClick";使用javascript或jquery的函数

如何将参数值设置为“a”;onClick";使用javascript或jquery的函数,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试使用javascript将参数设置为onClick事件(在html按钮中) 这就是html按钮的外观: <button type="button" id="upload-button" onclick="uploadFileIGCSE('param1', 'param2', 'param3')" class="btn btn-success" aria-expanded="false">Upload</button> 我不知道如何将值设置为param1,par

我正在尝试使用
javascript
参数设置为
onClick
事件(在html
按钮中)

这就是
html
按钮的外观:

<button type="button" id="upload-button" onclick="uploadFileIGCSE('param1', 'param2', 'param3')" class="btn btn-success" aria-expanded="false">Upload</button>
我不知道如何将值设置为
param1
param2
param3

这是我试过的,但感觉不对

$('#upload-button').val = $('#year').val;
有人能帮我吗

我需要使用
javascript
jquery为函数
uploadFileIGCSE('param1','param2','param3')
中的参数(param1,param2,param3)设置值


谢谢你,我能理解你的需要。如果您真的只想使用HTML元素来实现这一点,那么下面是一种方法

<button type="button" id="upload-button" 
    onclick="uploadFileIGCSE(
             document.querySelector('#year').value, 
             document.querySelector('#grade').value, 
             document.querySelector('#subject').value)" 
    class="btn btn-success" aria-expanded="false">Upload</button>

-选择年份-
2001
2002
2003
-选择等级-
五年级
六年级
七年级
-选择主题-
爱德思
国家的
其他
上传
日志值:()

试试这个

<button type="button" id="upload-button" onclick="getOption()" class="btn btn-success"
    aria-expanded="false">Upload</button>

function getOption() {
    var year = document.getElementById("year");
    var year_option = year.options[year.selectedIndex].value;

    var grade = document.getElementById("grade");
    var grade_option = grade.options[grade.selectedIndex].value;

    var subject = document.getElementById("subject");
    var subject_option = subject.options[subject.selectedIndex].value;

    uploadFileIGCSE(year_option, grade_option, subject_option)
}
上传
函数getOption(){
var year=document.getElementById(“年”);
var year\u option=year.options[year.selectedIndex].value;
var等级=document.getElementById(“等级”);
var grade\u option=grade.options[grade.selectedIndex].value;
var subject=document.getElementById(“subject”);
var subject\u option=subject.options[subject.selectedIndex].value;
上传文件IGCSE(年份选项、等级选项、科目选项)
}

单击事件可以简单地运行匿名函数。它唯一的输入将是DOM引擎提供的默认
事件
对象。然后,该函数可以从您感兴趣的各种元素中收集值,并进一步调用uploadFileIGCSE函数,将这些值作为参数传递

这是一个演示。注意,我在JS代码中使用了事件处理程序,而不是在HTML中使用“onclick”。这通常被认为是更好的做法,因为它使代码更易于阅读、维护和调试,并有助于将功能与演示分离

注意:您可以使用jQuery来处理任何/所有这些问题,但同样地,这并不是真正必要的,在这种情况下,它并不会增加太多的价值

var-button=document.getElementById(“上传按钮”);
按钮。addEventListener(“单击”),函数(事件){
var year=document.getElementById(“年”).value;
var grade=document.getElementById(“grade”).value;
var subject=document.getElementById(“subject”).value;
上传文件IGCSE(年份、年级、科目);
});
函数上传文件IGCSE(年份、年级、科目){
控制台日志(年份、年级、科目);
}
上传
-选择年份-
2001
2002
2003
-选择等级-
五年级
六年级
七年级
-选择主题-
爱德思
国家的
其他

您确实不应该使用像
onclick这样的内联事件侦听器(出于可维护性、安全性和关注点分离的原因)

相反,使用DOM API的
HTMLElement.prototype.addEventListener()
添加侦听器:

函数上传fileigcse(x,y,z){
控制台日志(x,y,z);
}
document.getElementById('upload-button')。addEventListener('click',function(){
上传文件IGCSE(year.value、grade.value、subject.value);
})

-选择年份-
2001
2002
2003
-选择等级-
五年级
六年级
七年级
-选择主题-
爱德思
国家的
其他
上传

您可以尝试这样的操作。

您应该将函数包装成一个新的匿名函数:
onclick=“function(){uploadFileIGCSE('param1','param2','param3');}”
fnName()
将调用该函数一次,该函数返回的任何内容都将被绑定为
onclick
处理程序。我不太明白您想说的@LuudJacobs。你能举个例子吗?不需要
event.preventDefault()因为
按钮[type=button]
没有默认操作。@connexo非常正确。我没有记下那个。这就像一个反射动作来添加默认lol。我会删除它。
<button type="button" id="upload-button" onclick="getOption()" class="btn btn-success"
    aria-expanded="false">Upload</button>

function getOption() {
    var year = document.getElementById("year");
    var year_option = year.options[year.selectedIndex].value;

    var grade = document.getElementById("grade");
    var grade_option = grade.options[grade.selectedIndex].value;

    var subject = document.getElementById("subject");
    var subject_option = subject.options[subject.selectedIndex].value;

    uploadFileIGCSE(year_option, grade_option, subject_option)
}
document.getElementById('upload-button').addEventListener('click', function() {
  uploadFileIGCSE(year.value, grade.value, subject.value);
})
$('#upload-button').click(function(e) {
    var year = $('#year').val();
    var grade = $('#grade').val();
    var subject = $('#subject').val();

    uploadFileIGCSE(year, grade, subject);
})