Javascript 如何将JS函数连接到复选框

Javascript 如何将JS函数连接到复选框,javascript,html,function,checkbox,Javascript,Html,Function,Checkbox,你好, 我正在制作一个简单的文本转换器网站,我希望用户能够选择使用什么选项。现在我有两个选择;myConvertOption将单词中的每个单数字母大写,我有myScrambleOption将每个单词随机混合一点 现在,每当您单击Caps(复选框1)时,它已经执行了一个函数,我只希望在用户单击“Convert”按钮时执行该函数,现在它还在每个字母之间添加空格。 由于某种原因,加扰按钮(复选框2)不做任何事情,除了控制台记录更改 JSfiddle: 任何帮助和建议都将不胜感激 另外,我对Javasc

你好,

我正在制作一个简单的文本转换器网站,我希望用户能够选择使用什么选项。现在我有两个选择;myConvertOption将单词中的每个单数字母大写,我有myScrambleOption将每个单词随机混合一点

现在,每当您单击Caps(复选框1)时,它已经执行了一个函数,我只希望在用户单击“Convert”按钮时执行该函数,现在它还在每个字母之间添加空格。 由于某种原因,加扰按钮(复选框2)不做任何事情,除了控制台记录更改

JSfiddle:

任何帮助和建议都将不胜感激

另外,我对Javascript还不熟悉

复选框事件侦听器:

复选框\u 1.addEventListener('change',function(){
控制台日志(“复选框_1已更改”);
如果(选中此项){
myConvertFunction();
}否则{
//无所事事
}
})
复选框2.addEventListener('change',function(){
控制台日志(“复选框_2已更改”);
如果(选中此项){
myScrambleFunction(文本);
}否则{
//无所事事
}
})
复选框HTML:


帽子
争夺

您永远不会更新
var text

如果希望值不是空字符串,则需要在使用它之前对其进行更新

checkbox_2.addEventListener('change', function () {
    console.log("checkbox_2 changed");
    if (this.checked) {
        text = document.getElementById("inputText").value;
        myScrambleFunction(text);
    } else {
        //Do nothing
    }
这可以正常工作。
您只需在按钮上添加事件,然后测试选中了哪个复选框,以及其他一些小事情


文本转换器
大写+随机字母文本转换器
帽子
争夺
转换
复制
var text=document.getElementById(“inputText”).value;
var convertText=document.getElementById(“convertText”);
var checkbox_2=document.getElementById(“checkbox_2”);
var checkbox_1=document.getElementById(“checkbox_1”);
//将每个单数字母大写
函数myConvertFunction(){
var x=document.getElementById(“inputText”).value;
var字符串=”;
for(设i=0;i{
如果(字长>=3){
返回word.split(“”).sort(()=>0.7-Math.random()).join(“”);
}
返回词;
});
返回单词。join(“”);
}
document.getElementById(“copyText”).addEventListener(“单击”,myCopyFunction);
//复制文本区域输出
函数myCopyFunction(){
var copyText=document.getElementById(“convertedText”);
copyText.select();
文件。执行命令(“副本”);
警报(“复制的文本:+copyText.value”);
删除文本();
}
//删除文本区域输出
函数橡皮擦文本(){
document.getElementById(“convertedText”).value=“”;
document.getElementById(“inputText”).value=“”;
document.getElementById(“inputText”).focus();
}
//不要将事件添加到单选按钮(前面的复选框),将其添加到convert按钮,并在其功能测试中选中哪个单选按钮
convertText.addEventListener('click',函数(){
如果(复选框1.选中和复选框2.选中){
log(“同时执行两个选项”);
document.getElementById(“convertedText”).value=myScrambleFunction(myConvertFunction());
}else if(复选框2.选中){
控制台日志(“正在进行的筛选”);
document.getElementById(“convertedText”).value=myScrambleFunction(text);
}else if(复选框_1.选中){
控制台日志(“程序上限”);
document.getElementById(“convertedText”).value=myConvertFunction();
}
})

你能和我们分享函数的代码吗:myScrambleFunction()和myConvertFunction()?它们在JSFIDLE中:你的
文本
变量在页面加载时被设置,然后再也不会更新,这是你想要的吗?我真的不知道。我只想知道如何实现上面描述的工作:\I put
text=document.getElementById(“inputText”).value
在我的两个复选框eventlisteners中,但它没有改变任何内容。如果您想在空格
上拆分
让单词=文本。拆分(“”)
不会这样做,它必须是
让单词=文本。拆分(“”)
非常感谢。我已经试了大约5个小时让它工作。我真的很感激!!还有一件事:出于某种原因,我不仅不能对文本进行置乱,你能明白为什么会这样吗。它在控制台中显示为扰码NVM,我通过将
var text=document.getElementById(“inputText”).valuedocument.getElementById(“convertedText”).value=myScrambleFunction(text)`