变量已声明,但仍显示未定义

时间:2019-05-15 05:27:16

标签: javascript jquery html

enter image description here我有一个选择列表,更改后,我需要将一个变量设置为true。我已经编写了如下所示的代码。

$(document).ready(function () {
var value = false;
console.log(value) //Get value = false
$("#select").on('change', function(){
    value = true;
    console.log(value) //Get value = true
});

$("#form").submit(function (e) {
     console.log(value) //Get value = undefined
})
})

为什么提交表单后我无法定义。我希望其值为true / false而不是未定义

5 个答案:

答案 0 :(得分:4)

$(document).ready(function () {
var value = false;
console.log(value) //Get value = false
$("#select").on('change', function(){
    value = true;
    console.log(value) //Get value = true
});

$("#form").submit(function (e) {
     console.log(value) //Get value = undefined
})

不要在onchange函数内创建新变量

答案 1 :(得分:1)

您缺少尾括号,也可以在onChange方法中使用相同的全局值

$(document).ready(function() {
  var value = false; //Global default value
  console.log(value) //Get value = false
  $("#select").on('change', function() {
    value = true; //value changed on change
    console.log($('#select').val(), "value on change!")
    console.log(value) //Get value = true
  });

  $("#form").submit(function(e) {
    console.log(value) //it will be not undefined
  })
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="form" action="javascript:alert( 'form success!' );">
  <select id="select" name="gender">
    <option value="0">Select Gender</option>
    <option value="Male">Male</option>
    <option value="Female">Female</option>
  </select>
  <input type="submit">
</form>

答案 2 :(得分:0)

在文档外部定义“值”变量。如下所示

var value = false;
$(document).ready(function () {
console.log(value) //Get value = false
$("#select").on('change', function(){
    value = true;
    console.log(value) //Get value = true
});

$("#form").submit(function (e) {
     console.log(value) //Get value = undefined
})

谢谢

答案 3 :(得分:0)

解决了.. !!尝试了另一种方式。提交表单后检查select的值。

$(document).ready(function () {
var value = false;
console.log(value) //Get value = false
$("#select").on('change', function(){
    value = true;
    console.log(value) //Get value = true
});
})
 $("#form").submit(function (e) {
     var select_value = $("#select").val();
     var value = false;
     if(select_value == "Female") {
         value = true;
     }
     console.log(value) //Get value = false/true
})

答案 4 :(得分:0)

这肯定会对您的工作有所帮助。请检查

$(document).ready(function () {
var value = false;

$("#myselect").on('change', function(){
    value = true;
   $("#myselect :selected").val(value);
});

$("#Submitbtn").on("click",function () {
    var GetSelectBoxValue= $("#myselect :selected").val();
    alert(GetSelectBoxValue);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="myselect" >
<option value="false">one</option> 
<option value="false">two</option>
</select>
<input type="button" id="Submitbtn" value="submit"/>