作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 UI 页面上有四个 TextField。我从所有 textfields
获取用户的 input
值,例如值 Textfield1.getvalue(),Textfield2 .getvalue(),Textfield3.getvalue(),Textfield4.getvalue()
.
现在单击按钮,我需要检查用户实际填写了哪些文本字段并附加我需要向服务器发送 http 请求以查询数据库的那些值。这些值用于过滤表中的值。所以基本上这些值是 "TABLE COLUMN"
值。为此,我想到了使用老派组合,例如:
if (Textfield1.getvalue()=="" && Textfield2.getvalue()!=""){
//do something
}
else if (Textfield2.getvalue()=="" && Textfield3.getvalue()!=""){
//do something
}
else if (Textfield3.getvalue()=="" && Textfield4getvalue()!=""){
//do something
}
......
and so on.
这个,个人感觉效率不高,也不是好的编程方式。我很确定可能还有其他一些我不知道的方法,也无法通过谷歌搜索找到它。任何人都可以分享一些想法以获得更好的解决方案。
提前致谢。
最佳答案
如果你想根据第一个有值的字段做某事,至少你的样本看起来是这样,你可以做类似的事情:
var do_something = {
0 : function(val) { console.log("Doing x width " + val)},
1 : function(val) { console.log("Doing y width " + val)},
2 : function(val) { console.log("Doing z width " + val)},
3 : function(val) { console.log("Doing w width " + val)},
}
$("#post").on("click", function() {
var val;
$(".test").each(function(i) {
val = $(this).val();
if (val) {
do_something[i](val);
return false; // Break
// (Or omit the break if you want to "do_something" with all fields
// having a value.)
}
});
});
或者,根据各种情况,更好的解决方案可能是:
var do_something2 = {
act1 : function(k, val) { console.log("Doing x width " + val + " k=" + k) },
act2 : function(k, val) { console.log("Doing y width " + val + " k=" + k) },
act3 : function(k, val) { console.log("Doing z width " + val + " k=" + k) }
};
$("#post2").on("click", function() {
var val;
$(".test").each(function(i) {
val = $(this).val();
if (val) {
do_something2[$(this).data("act")](i, val);
return false; // Break
}
});
});
如果您有这样的输入字段(动态或以其他方式创建):
<input type="text" data-act="act1" class="test" value="one" />
<input type="text" data-act="act2" class="test" value="two" />
通过这种方式,您还可以通过将 data-act
值设置为想要的功能来轻松更改每个字段所采取的操作。
关于javascript - If else 条件 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21922974/
我是一名优秀的程序员,十分优秀!