【问题标题】:Call function with selected parameter without using if...else statements使用选定参数调用函数而不使用 if...else 语句
【发布时间】:2015-12-25 17:02:50
【问题描述】:

这是给我的一个场景,如果不使用条件语句,我想不出该怎么做。我是用 jQuery 写的,但是纯 JS 也可以。

<form>
<input type="radio" name="number" value="9" checked>9
<br>
<input type="radio" name="number" value="24">24
<br>
<input type="radio" name="number" value="57">57
<br>
<button>submit</button>
</form>

用户可以进行选择,这将导致单个参数为以下之一的函数调用:9、24 或 57。根据用户输入,必须执行以下说明:

如果参数为9,则必须执行以下方法(按顺序):

alert('9 way to go');
// some other code i want to happen

如果参数为24则必须执行以下方法(按顺序):

alert('24 way to go');
// some other code i want to happen

如果参数为57,则必须执行以下方法(按顺序):

alert('57 way to go');
// some other code i want to happen

通常我会等待点击。点击后,检查条件,并根据它是哪一个,触发正确的方法。我觉得这是一个棘手的问题,但我敢肯定我也可能 100% 错了。任何想法如何在没有条件的情况下做到这一点?我在想也许是关闭?不过我对它们不是很熟悉。

【问题讨论】:

  • some other code i want to happen是什么
  • 每种情况下的“其他代码”是不同还是相同?

标签: javascript jquery if-statement methods conditional


【解决方案1】:

如何读取所选单选按钮的值并使用它来构建警报字符串?

$(function(){

   $("form").submit(function(e){
     e.preventDefault();
     var v= $("input[name='number']:checked").val();
     alert(v+' way to go');
   });

});

Here 是一个工作示例:

我不知道您要执行的其他方法是什么,但是您可以将我们读取的值传递给您的其他方法并在那里做任何您想做的事情。

 var v= $("input[name='number']:checked").val();
 YourMethodA(v);
 YourMethodB(v)

但我认为,您仍然需要对值进行一些 if 条件检查以执行一些进一步的操作。可能是这个方法,也可能是你从中调用的方法。

【讨论】:

    【解决方案2】:

    您可以获得单选按钮的选定值:

    alert($('input[name="number"]').val() + ' way to go');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-28
      • 2020-11-20
      • 2016-11-14
      • 1970-01-01
      • 2019-03-31
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多