【问题标题】:Submitting Values From a Jquery Slider从 Jquery 滑块提交值
【发布时间】:2015-05-06 16:50:28
【问题描述】:

大家好,我这里有一个 jquery 滑块的代码。我想取出滑块的值并使用 http post 方法将值提交到数据库。我有一个处理表单,我成功地用于文本框和单选按钮。我希望将滑块的值保存在隐藏字段中并发布。我知道这会从滑块中获取值。

    var selection = $( ".selector" ).slider( "value" );

现在如何将其添加到此提交表单的值中?

    <input type='hidden' class="mainForm" id="fieldBox_5" name="field_5" value=selection>

这是我的全部代码。

    <<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Slider - Slider bound to select</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="style.css">
  <script>
  $(function() {
    var select = $( "#minbeds" );
    var slider = $( "<div id='slider'></div>" ).insertAfter( select ).slider({
      min: 1,
      max: 10,
      range: "min",
      value: select[ 0 ].selectedIndex + 1,
      slide: function( event, ui ) {
        select[ 0 ].selectedIndex = ui.value - 1;
      }
    });
    $( "#minbeds" ).change(function() {
      slider.slider( "value", this.selectedIndex + 1 );
    });
  });
  var selection = $( ".selector" ).slider( "value" );
  </script>
</head>
<body>

<form id="mainForm_1" class="MainForm" method=post enctype=multipart/form-data action=processorss.php onSubmit="return validatePage1();">



  <label for="minbeds" class="mainForm">Rate Your Prefence for Fish 1-10</label>
 <select name="minbeds" id="minbeds">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
    <option>8</option>
    <option>9</option>
    <option>10</option>
  </select>
  <li class="mainForm">



  <input type='hidden' class="mainForm" id="fieldBox_5" name="field_5" value=selection>

                    <input id="saveForm" class="mainForm" type="submit" value="Submit" />
                </li>
</form>


</body>
</html>

【问题讨论】:

    标签: javascript jquery html ajax post


    【解决方案1】:

    我添加了额外的代码以将所选值(从下拉菜单或滑块)复制到隐藏字段。诀窍是,一旦您获得了所选项目的值,您需要自己将其复制到隐藏字段。

    相关更改在这里(我也将其打印到控制台以验证值,您可以在检查它是否适合您后删除这两行):

    var selection = $("#slider").slider("value");
    console.log("Slider value: " + selection);
    $("#selectedNumber").val( selection );
    console.log("Hidden field value: " + $("#selectedNumber").val());
    

    请看下面的演示:

    $(function() {
        var select = $("#minbeds");
        var slider = $("<div id='slider'></div>").insertAfter(select).slider({
          min: 1,
          max: 10,
          range: "min",
          value: select[0].selectedIndex + 1,
          slide: function(event, ui) {
            select[0].selectedIndex = ui.value - 1;
            $("#selectedNumber").val( ui.value - 1 );
            console.log("Slider value: " + (ui.value - 1) );
            console.log("Hidden field value: " + $("#selectedNumber").val());              
          }
        });
      
        $("#minbeds").change(function() {
          slider.slider("value", this.selectedIndex + 1);
          var selection = $("#slider").slider("value");
          console.log("Slider value: " + selection);
          $("#selectedNumber").val( selection );
          console.log("Hidden field value: " + $("#selectedNumber").val());      
        });
      });
    #slider {
      margin: 20px;
      width: 400px;
    }
    <link href="https://code.jquery.com/ui/1.11.4/themes/black-tie/jquery-ui.css" rel="stylesheet" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
    
    <form id="mainForm_1" class="MainForm" method=post enctype=multipart/form-data action=processorss.php onSubmit="return validatePage1();">
    
    
      <li class="mainForm">
        <label for="minbeds" class="mainForm">Rate Your Prefence for Fish 1-10</label>
    
        <select name="minbeds" id="minbeds">
          <option>1</option>
          <option>2</option>
          <option>3</option>
          <option>4</option>
          <option>5</option>
          <option>6</option>
          <option>7</option>
          <option>8</option>
          <option>9</option>
          <option>10</option>
        </select>
    
        <input type='hidden' class="mainForm" id="selectedNumber" name="selectedNumber" />
    
        <input id="saveForm" class="mainForm" type="submit" value="Submit" />
      </li>
    </form>

    【讨论】:

      【解决方案2】:

      document.getElementById('fieldBox_5').value = selection;$('#fieldBox_5').val(selection);(如果你更喜欢 jQuery)就在你最后一个 JS 代码之后(在 on ready 块中)啊,你也需要在 on ready 方法中移动 var selection 声明。

      【讨论】:

      • 由于 OP 使用的是 JQuery,你可以简单地使用$('#fieldBox_5').val(selection);
      • 感谢@ochi,我认为两者都很好,毕竟 jQuery 只不过是 js 库(虽然很棒)是正确的。
      猜你喜欢
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-27
      相关资源
      最近更新 更多