将HTML <select>中的选定值传递给javascript变量?</select>

时间:2013-11-19 07:23:39

标签: javascript jquery html

我正在尝试使用网页上指定的参数运行js脚本,当触发javascript时,将运行php文件。预期的输出将是getstats.php的结果。它由于某种原因不起作用。是因为app1不是全局变量吗?

HTML:

  <select name="app" id="app1">
  <option value=1>A</option>
  <option value=2>B</option>
  <option value=3>C</option>
  <option value=4>D</option>
  </select>     
  P1: <input type="text" id="p1">
  Start Date: <input type="date" id="dt1">
  End Date: <input type="date" id="dt2">
<input type="submit" id = "submit" value="Run"><br>
<script src="js/global.js"></script>

global.js中的javascript代码:

$('input#submit').on('click', function() {
var app1 = document.getElementById("app1").value;
var p1 = $('input#p1').val();
var dt1 = $('input#dt1').val();
var dt2 = $('input#dt2').val();
if ($.trim(p1) != '' && $.trim(app1) != '' && $.trim(dt1) != '' && $.trim(dt2) != '') {
    $.post('getstats.php', {app1: app1, p1: p1, dt1: dt1, dt2: dt2}, function(data1) {
        $('div#stats').html(data1);
    });
  }
});

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

查看this问题,this问题,this问题和this文章......

您可能还想查看.serialize()jquery函数,它可以帮助您节省大量时间,尤其是验证时。 http://api.jquery.com/serialize/

希望这会有所帮助

答案 1 :(得分:0)

我认为您忘记在点击事件中使用e.preventDefault。 如果表单元素在表单内,则按钮将触发传递给表单操作属性的值。通过这种方式,价值永远不会超过&#39;到jQuery(JavaScript)。

此外,click处理程序应该包含在文档就绪函数中,以便在尝试绑定事件之前等待DOM准备就绪。

$(document).ready(function() {

    $('input#submit').on('click', function(e) {
        e.preventDefault();

        var app1 = $('#app1').val();
        var p1 = $('input#p1').val();
        var dt1 = $('input#dt1').val();
        var dt2 = $('input#dt2').val();

        if ($.trim(p1) != '' && $.trim(app1) != '' && $.trim(dt1) != '' && $.trim(dt2) != '') {
            $.post('getstats.php', {app1: app1, p1: p1, dt1: dt1, dt2: dt2}, function(data1) {
                $('div#stats').html(data1);
            });
        }
    });
});

您可以使用console.log检查firebug控制台中的值(&#39; text&#39;);或console.log(var); 在启动if语句之前尝试记录app1以查看变量中是否有值。如果打印未定义,可能还有其他错误。

答案 2 :(得分:0)

我检查了你的代码,它运行正常:

只需在

中编写代码即可
 $(function()
 {
  // Your code
  // This function is exceuted when page is loaded. 
 });

我尝试了什么:

$(function()
{
    $('input#submit').on('click', function() {

    var app1 = document.getElementById("app1").value;

    alert("--"+app1);// <------------ showing correct o/p

    var p1 = $('input#p1').val();
    alert(p1);
    var dt1 = $('input#dt1').val();
    var dt2 = $('input#dt2').val();
    if ($.trim(p1) != '' && $.trim(app1) != '' && $.trim(dt1) != '' && $.trim(dt2) != '') {
        $.post('getstats.php', {app1: app1, p1: p1, dt1: dt1, dt2: dt2}, function(data1) {
            $('div#stats').html(data1);
        });
      }
    });


});