如果其他条件为Javascript
我的UI页面上有四个文本字段。我从所有如果其他条件为Javascript,javascript,jquery,if-statement,Javascript,Jquery,If Statement,我的UI页面上有四个文本字段。我从所有TextFields中获取用户的输入值,例如值Textfield1.getvalue()、Textfield2.getvalue()、Textfield3.getvalue()、Textfield4.getvalue() 现在,单击一个按钮,我需要检查用户实际填写了哪些文本字段,并附加这些值,以便向服务器发送http请求以查询数据库。这些值用于筛选表中的值。因此,基本上这些值是“表列”值。为此,我考虑使用老式组合,如: if (Textfield1.get
TextFields
中获取用户的输入值,例如值Textfield1.getvalue()、Textfield2.getvalue()、Textfield3.getvalue()、Textfield4.getvalue()
现在,单击一个按钮,我需要检查用户实际填写了哪些文本字段,并附加这些值,以便向服务器发送http请求以查询数据库。这些值用于筛选表中的值。因此,基本上这些值是“表列”
值。为此,我考虑使用老式组合,如:
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 c=0;
if (condition1) c+=1;
if (condition2) c+=2;
if (condition3) c+=4;
等等。现在,每个条件组合都有一个与之相关联的唯一值,您可以使用开关语句来实现更清洁的流程。一个想法-检查单个字段一次,并将其组合成一个唯一值:
var c=0;
if (condition1) c+=1;
if (condition2) c+=2;
if (condition3) c+=4;
等等。现在,每个条件组合都有一个与之相关联的唯一值,您可以使用开关语句来实现更清洁的流。如果您想基于第一个具有值的字段执行某些操作,至少这是您的示例中显示的值,您可以执行以下操作:
» «
或者,根据各种情况,更好的解决方案可能是:
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
}
});
});
如果您有这样的输入字段(动态或以其他方式创建):
通过这种方式,您还可以简单地通过将数据行为
值设置为所需函数,轻松更改每个字段所采取的操作。如果您希望基于第一个具有值的字段执行某些操作,至少这是您的示例中显示的操作,您可以执行以下操作:
» «
或者,根据各种情况,更好的解决方案可能是:
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
}
});
});
如果您有这样的输入字段(动态或以其他方式创建):
这样,只需将数据动作
值设置为所需函数,就可以轻松更改每个字段采取的操作。考虑数据而不是控制流。我建议用这种方式思考这个问题:
数据->验证->副作用
所有这些步骤都必须解耦。下面是一个示例,您可能需要重新考虑数据以调整代码:
// Data
var fields = [Textfield1, Textfield2, Textfield3, Textfield4];
// Validation
var valid = fields.filter(function(x) {
return x.getvalue();
});
// Side effects
valid.forEach(function(field) {
var value = field.getvalue();
// do something
});
考虑数据而不是控制流。我建议用这种方式思考这个问题:
数据->验证->副作用
所有这些步骤都必须解耦。下面是一个示例,您可能需要重新考虑数据以调整代码:
// Data
var fields = [Textfield1, Textfield2, Textfield3, Textfield4];
// Validation
var valid = fields.filter(function(x) {
return x.getvalue();
});
// Side effects
valid.forEach(function(field) {
var value = field.getvalue();
// do something
});
那是什么?.getValue()
?.getValue()是一个获取文本字段值的函数。那是什么?.getValue()
?.getValue()是一个获取文本字段值的函数。我想到了类似的东西。但如果你能简单介绍一下你的几行台词,我会很高兴的!我想到了这样的事情。但如果你能简单介绍一下你的几行台词,我会很高兴的!