【问题标题】:how to use variable value outside change function如何在更改函数之外使用变量值
【发布时间】:2022-01-21 20:49:57
【问题描述】:

如何在函数外使用 selected_gender 变量

$('input[type=radio][name=pop_gender]').change(function() {
  if (this.value == 'Male') {
    var selected_gender = "gender_Male";
  } else if (this.value == 'Female') {
    var selected_gender = "gender_Female"
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<input type="radio" name="pop_gender" id="gender_female" value="Female">
<input type="radio" name="pop_gender" id="gender_male" value="Male">

【问题讨论】:

  • 在函数外声明变量。
  • 将“selected_gender”声明为全局变量,意思是在函数开始之前声明它。

标签: javascript html jquery


【解决方案1】:

1,在调用更改函数之前声明 selected_gender 变量。
2、在 selected_gender 变量中取 clickd 元素的值
3、打印那个变量

希望下面的代码能帮助你更好地理解。

let selected_gender = "";
$('input[type=radio][name=pop_gender]').on('change', function() {
    selected_gender = this.value; //this will get value of input type is radio and name is pop_gender which was last time clicked
    console.log(selected_gender); //in side of function               
});
console.log(selected_gender); //out side of function               
        
<html>
    <body>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
        <input type="radio" name="pop_gender" id="gender_female" value="Female">
        <input type="radio" name="pop_gender" id="gender_male" value="Male">
        
    </body>
</html>

【讨论】:

  • 很抱歉,我已经复制了您的代码并对其进行了测试,并在每个控制台日志中添加了“内部函数”和“外部函数”文本,它只为我打印“内部函数” .这是为什么呢?
  • 因为在上面的示例中控制台日志事件触发更改或单击单选按钮,因此每次触发事件时都会更新 selected_gender 变量。页面加载时仅触发一次外部函数事件@ADM
  • 提交时取值为selected_gender,它已经更新了最后一次单击的单选按钮的值,您无法使用控制台日志对其进行调试。表单提交代码应该在更改事件之后出现,您可以在 stackover 流程​​中提出问题,如果您可以分享一些更好的想法,我无法理解您的确切要求。谢谢,您可以将您的问题链接分享给我。 @ADM
【解决方案2】:

可以在函数外部声明 var:

var selected_gender;
$('input[type=radio][name=pop_gender]').change(function() {
  if (this.value == 'Male') {
    selected_gender = "gender_Male";
  } else if (this.value == 'Female') {
    selected_gender = "gender_Female"
  }
});

但要检查你在哪里使用它

let selected_gender = $('input[type=radio][name=pop_gender]:checked').val(); 
// here use "Male" or "Female"

换个说法:

How can I deal with diverse gender identities in user profiles?

【讨论】:

    猜你喜欢
    • 2020-09-19
    • 2019-12-29
    • 1970-01-01
    • 2022-08-21
    • 1970-01-01
    • 2021-12-26
    • 2013-08-09
    • 1970-01-01
    • 2018-05-27
    相关资源
    最近更新 更多