我有2个文件。 1个html和一个js。 html文件有复选框。当我选中一个复选框时,我正在设置一个标志。这个标志必须放在.js文件中。根据是否设置了标志,我将在js文件中执行一些操作。基本上,我该怎么做才能在javascript文件中提供html文件中设置的标志?
谢谢。
function checkWIFI(){
if(document.getElementById('wifi').checked == true)
wifiFlag.changeFlag(true);
else
wifiFlag.changeFlag(false);
}
wifiFlag = new testFlag();
function testFlag()
{
this.flag = false;
}
testFlag.prototype.changeFlag = function(newFlag)
{
this.flag = newFlag;
}
答案 0 :(得分:2)
您可以使用全局变量,并将它们声明在JS文件的顶部。无论你在window
下申报什么,都会变成一个全局变量。在JS文件中,在顶部添加以下行。
window.flag = 0;
在复选框中,当您更改时,设置标记。
<input type="checkbox" name="flag"
onclick="if (this.checked) window.flag = 1; else window.flag = 0;" />
现在,您可以使用window.flag
访问该标记。
if (window.flag == 1)
// Do something
else
// Do something
答案 1 :(得分:0)
在html中,您声明了一个隐藏变量
<input type="hidden" id="hidden1" >
并设置它的值
document.getElementById('hidden1').value = '//your returned value';
访问脚本中的隐藏值
var x=document.getElementById("hidden1").value;
alert(x);
希望这对你有用..
答案 2 :(得分:0)
我建议您在.js文件中编写javascript,以便为其提供必要的上下文信息。因此,编写函数或可以在复选框值中传递的内容。这将有助于保持代码更可重用,并且不会绑定到全局窗口。只要复选框值发生更改,您就可以启动此代码,枚举复选框值并将其传递给您的代码。我建议不要使用全局变量。如果你绝对必须,那么命名它们。
答案 3 :(得分:0)
我建议最安全的方法是使用可用的数据属性。例如,
<input type="checkbox" name="firstCheckbox" data-flag="old">
这种方法可以让您慷慨地退回,因为旧的浏览器不会抱怨。如果您有多个复选框,则不需要为每个复选框添加额外标记。使用全局变量可能导致问题和名称空间问题。隐藏的值也是一个很好的方法:)
您可以使用以下两种方法之一获取数据属性的值。 1)getAttribute,旧的JavaScript方法,你想要抓取data-flag。在jQuery中,使用attr(),2)HTML5方式,它存储在.dataset数组属性中,所以.dataset ['flag']和jQuery中的等价方式是.data('flag')
安吉拉