为什么这个侧边栏数据没有进入ajax,为什么没有定义显示ui的滑块值

Why is this sidebar data not going to ajax and why is slider value showing ui not defined?

本文关键字:为什么 显示 ui 定义 侧边栏 数据 ajax      更新时间:2023-09-26

我有一个侧边栏,其中包含一些输入。我想把这些数据输入到我的ajax中。我正在记录这些输入。然而,我什么也没得到。以下是我所做的:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
    $("#find_match").click(function() {
        alert("clicked");
    });
</script>
<aside>
    <br><br>
    Select Gender
    <select name="gender" id="gender">
        <option value="">Select</option>
        <option value="male">Male</option>
        <option value="female">Female</option>
    </select>
            
    <hr>
    Educational Qualification : 
    <select class="form-control" name="eduQualification" id="eduQualification" class="required">
        <option value="">Select</option>
        <option value="10">10th</option>
        <option value="12">12th</option>
        <option value="15">Graduate</option>
        <option value="17">Post Graduate</option>
    </select>
            
    <hr>
    Salary expectation (in rupees):
    <select class="form-control" name="salary" id="salary">
        <option value="">Select</option>
        <option value="1">Upto 1 lakh</option>
        <option value="2">Upto 1-2 lakhs</option>
        <option value="3">2-5 lakh</option>
        <option value="4">5-10 lakh</option>
        <option value="5">More than 10 lakh</option>
    </select>
    <br><br>
    <button id="find_match">Search matches </button>
    </aside>

即使我的所有文件都在适当的位置,我也不会在控制台中获得任何数据。我在html页面中有一个滑块,我想在jquery中获取它的值;为此,它说"ui未定义"。

这是摘录-

<label for="amount">Age range:</label>
                <input type="text" id="amount" readonly style="border:0; color:#f6931f; font-weight:bold;">
                <div id="slider-range"></div>

js代码-

<script>
    $(function() {
        $( "#slider-range" ).slider({
          range: true,
          min: 20,
          max: 60,
          values: [ 20, 30 ],
          slide: function( event, ui ) {
            $( "#amount" ).val( ui.values[ 0 ] + " - " + ui.values[ 1 ] );
          }
        });
        $( "#amount" ).val( $( "#slider-range" ).slider( "values", 0 ) +
          " - " + $( "#slider-range" ).slider( "values", 1 ) );
        });
    </script>

    $("#find_match").click(function(){
  // I want to get the value of slider here..    
        var minAge = $('#amount').val(ui.values[ 0 ]);
});

我想。。它给出这个错误是因为它没有得到作为slide()中回调的一部分的ui变量。如何解决这个问题?请帮忙。

正如上面的注释所建议的,您需要等待DOM准备就绪。如果DOM还没有准备好,则无法将事件处理程序绑定到元素。

$(document).ready(function() {
    $("#find_match").click(function(){
        alert("clicked");
    });
});

你发布的新JavaScript问题的第二部分搞砸了。您需要将代码的事件处理程序部分放在document.ready函数中。这就是它应该是什么:

$(function() {
    $("#slider-range").slider({
      range: true,
      min: 20,
      max: 60,
      values: [ 20, 30 ],
      slide: function(event, ui) {
          $("#amount").val(ui.values[ 0 ] + " - " + ui.values[1]);
      }
    });
    // Took this out of the val() and put it in a var so it's easier to read
    var sliderVal = $("#slider-range").slider("values", 0) +
        " - " + $("#slider-range").slider("values", 1);
    $("#amount").val(sliderVal);
    // The code below must be within a document.ready, or the event
    // handler won't bind to the element because the DOM isn't ready!
    $("#find_match").click(function() {
        // I want to get the value of slider here..    
        var minAge = $('#amount').val(ui.values[ 0 ]);
    });
});