我有一个包含多个值的表单。选择/更改值时,需要将其传递给函数。但是,这个函数是在另一个函数中定义的(保持这种方式会很好)。记住这个功能也有多个参数。
HTML
<select onChange="selectValue(this.value, x, y)">
<option value="Value 1"> Value 1 </option>
JS
function FunctionOne()
{
this.selectValue = function(value, x, y) { /* do something */ }
}
所以我会像这样在其他地方调用这个函数:
A = new FunctionOne();
A.selectValue(value, 1, 2) // where value is specified from an instance of my data (irrelevant to the problme I'm having)
这样找不到onchange
函数,理想情况下我不希望在其他函数之外定义它。另外,我不知道如何在HTML代码中处理selectValue
具有的多个输入。
答案 0 :(得分:1)
只要A
存在(将其分配到窗口或文档)选择更改的位置和时间,您可能会执行以下操作:
<select onChange="function(){A.selectValue(this.value, x, y);}">
答案 1 :(得分:0)
函数是一个闭包,它定义了一个私有作用域。我建议尝试模块模式,这对所有javascript都很好(你会看到它被jQuery使用,Mozilla推荐等)。就像你的情况一样:
function functionOne() {
var methods = {
selectValue: function(value, x, y) {
//Do something here
}
};
return methods;
}
现在您可以执行以下操作:
new functionOne().selectValue(a, b, c);