如果情况总是正确的,但也可能是错误的
If case is always true, but probably false
我有一个简单的表单下拉列表,我希望根据选择值显示不同的内容。我有一个名为connectiontype的变量,从下拉菜单中输入正确的值,但if/else语句似乎不起作用-我总是以红色结束。知道为什么吗?
Add
<select name="connection_type" id="connection_type">
<option value="red">Red</option>
<option value="green">Green</option>
<option value="blue">Blue</option>
</select>
connection
<input type="button" value="Go" onclick="javascript:addDataSource();">
这是javascript的简化。
function addDataSource() {
DSN++;
connectiontype = $("#connection_type").val();
if (connectiontype = 'red') {
var html = 'Red';
} else if (connectiontype = 'green') {
var html = 'Green';
} else {
var html = 'Blue';
}
addElement('DSN', 'div', 'DSN-' + DSN, html);
console.log(DSN);
}
function addElement(parentId, elementTag, elementId, html) {
var p = document.getElementById(parentId);
var newElement = document.createElement(elementTag);
newElement.setAttribute('id', elementId);
newElement.innerHTML = html;
p.appendChild(newElement);
}
您使用的是=
(赋值)而不是==
(比较)。
if (connectiontype == 'red') {
...
} else if (connectiontype == 'green') {
...
}
当你有一个赋值,例如:lhs = rhs
,整个表达式返回rhs
是什么。所以:
if (connectiontype = 'red') { ...
// is equivalent to (as far as the "if" is concerned):
if ('red') { ...
由于'red'
(一个非空字符串)在JavaScript中是" true ",因此if
始终为true,并且您的html
变量将始终设置为'Red'
。
相关文章:
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 使用RegExp获取一系列单词,这些单词前后可能有空格,也可能没有空格
- WinJS,从可能是异步的函数返回一个承诺,也可能不是异步的
- 浮景图数据或其他原因的最大长度,即使渲染轴,水平条也可能不显示
- 角度不显示$scope数据,ng 重复传入控制器.也没有错误
- 在Javascript中,有没有办法评估一个变量,该变量可能是函数,也可能不是函数
- 为什么我的子函数需要“return”语句以避免出错?父函数没有“返回”,也没有错误
- 在webkit中不触发布局也可能是IE中的优化选项
- 谷歌地图v3也显示错误的方向和文本
- 可能是也可能不是另一个Angular指令的子指令
- 从母版页-如何在子页中找到可能存在也可能不存在的项目的clientID
- 如果情况总是正确的,但也可能是错误的
- 尝试使用Javascript来查找文本并将其链接到页面-也可能使用XML
- 用于整个单词匹配的Javascript正则表达式,也可能包含特殊字符
- jQuery可能放在同一行的第一个,也可能不是第一个
- PHP标头位置没有重定向,也没有错误
- 在 Ajax 加载的 php 模块中使用 javascript,即使请求成功,也返回错误值
- Sharepoint操作列表-由于时区原因,可能错误转换了截止日期
- 查找数组中可能存在也可能不存在的元素