Javascript 有没有一个原因,这个程序不返回空值,尽管它在代码中明确声明?

Javascript 有没有一个原因,这个程序不返回空值,尽管它在代码中明确声明?,javascript,html,css,ascii,ebcdic,Javascript,Html,Css,Ascii,Ebcdic,我目前正在建立一个网站,以了解更多关于HTML如何与CSS和JS交互的信息。我的目标是让用户输入不少于256个字符(最少256个字符),选择ASCII或EBCDIC,然后点击“运行!”按钮以ASCII或EBCDIC格式打印字符串。我面临两个挑战:我无法让程序返回空值(如果字符串长度小于256个字符),尽管在JS文件中声明了这一点。此外,我编写了用于打印ASCII的代码,但在将ASCII和EBCDIC与供用户选择的单选按钮集成时遇到了困难。以下是我编写的代码: 函数myFunction(){ 让

我目前正在建立一个网站,以了解更多关于HTML如何与CSS和JS交互的信息。我的目标是让用户输入不少于256个字符(最少256个字符),选择ASCII或EBCDIC,然后点击“运行!”按钮以ASCII或EBCDIC格式打印字符串。我面临两个挑战:我无法让程序返回空值(如果字符串长度小于256个字符),尽管在JS文件中声明了这一点。此外,我编写了用于打印ASCII的代码,但在将ASCII和EBCDIC与供用户选择的单选按钮集成时遇到了困难。以下是我编写的代码:

函数myFunction(){
让str=document.getElementById(“text_id”);
如果(str.value==“”&&str.length>=256){
str.focus();
返回;
}else if(str.value==“”&&str.length<256){
返回null;
}
设a=“ASCII码为==>”;
document.getElementById(“demo”).innerHTML=a+str.value.charCodeAt(0);
}
正文{
字体:12pt Arial;
}
输入[类型=收音机]+标签::之前{
边界半径:10px;
}
输入{
边框:2倍纯色;
}
输入:无效{
边框:2个红色虚线;
}
输入:无效:焦点{
背景图像:线性渐变(粉红色、浅绿色);
}

输入长度至少为256个字符的文本
选择以下选项:

ASCII码 EBCDIC “快跑!” “快跑!”

您的条件:

  • str.value==”
    将值与空值进行比较,您的意思是不是不为空
    =
  • str.length
    str是html标记,没有长度,应该是
    str.value.length
您需要循环检查收音机是否已检查

函数myFunction(){
让str=document.getElementById(“text_id”);
//检查收音机
让isRadioChecked=false;
document.querySelectorAll('input[type=“radio”]”)。forEach(函数(radio){
如果(无线电检查){
isRadioChecked=真;
}
})
如果(!isRadioChecked){
console.log(“未检查无线电,返回”);
返回;
}
如果(str.value.length>=256){
设a=“ASCII码为==>”;
document.getElementById(“demo”).innerHTML=a+str.value.charCodeAt(0);
str.focus();
返回;
} 
else if(str.value.length<256){
log('null');
返回null;
}
}
正文{
字体:12pt Arial;
}
输入[类型=收音机]+标签::之前{
边界半径:10px;
}
输入{
边框:2倍纯色;
}
输入:无效{
边框:2个红色虚线;
}
输入:无效:焦点{
背景图像:线性渐变(粉红色、浅绿色);
}
编码
输入长度至少为256个字符的文本
选择以下选项:

ASCII码 EBCDIC “快跑!” “快跑!”

如果您输入一个字符串,其中
string.value==”
请检查您的if条件,则函数将仅返回null。只有当存在一个条件,即string.value==“”或@SeanI使用或语句编辑代码时,它才会返回null。即使如此,它仍然返回值。让str=document.getElementById(“text_id”);if(str.length>=256){str.focus();return;}if(str.value==“”| | str.length<256){return null;}我认为您混淆了作为输入元素的元素和作为其值的字符串。您的测试值为空,但元素长度(无论是什么)大于256(无论如何对我来说)毫无意义。我运行了示例代码,“focus()”部分应该是ASCII/EBCDIC输出吗?只需将代码移到内部条件,答案就会更新。