ajax按钮按下值没有拉出来

时间:2014-11-22 11:41:36

标签: javascript jquery ajax

我试图通过按下按钮的按钮进行ajax调用,我打算按下多个选项按钮。

以下是将值发布到/ _url

的脚本
$(function() {
  $('a#buttonpress').bind('click', function() {
    $.getJSON('/_url', {
      a: $('input[name="a"]').val()
    }, function(data) {
      $("#result").text(data.result);
    });
    return false;
  });
});

这是HTML

<form>
    <input type="text" size="5" name="a"> 
    <p><a href="javascript:void();" id="buttonpress">Submit</a>
</form>

这可以很好地作为输入字段,但是当我尝试直接从按钮点击时,它不起作用,这里是我想要的并且有......

<button type="submit" a href="javascript:void();" 
id="buttonpress" value="aValue">Submit</button>

任何人都可以帮助我从按钮中取出值吗?

1 个答案:

答案 0 :(得分:0)

你不能这样做

<button type="submit" a href="javascript:void();" 
id="buttonpress" value="aValue">Submit</button>

首先,href不是按钮标记的有效属性。其次,您也在使用a,这意味着您添加了一个名为a的空标记。这就是选择器a#buttonpress不起作用的原因,因为您的html中没有<a ...>标记。

你可以这样做:

<button type="submit" id="buttonpress" value="aValue">Submit</button>

对于javascript:

var buttonValue = $('#buttonpress').val();

而且,您使用.getJSON错误,正确的方法是:

$.getJSON('url', { data })
    .done(function(data) { ... })
    // Other handlers (.fail, .always)

当您点击form内的提交时,浏览器会自动尝试将值提交到表单action网址(如果已定义)。

把它们放在一起:

$(function () {
    $('form').submit(function (e) {
        $.getJSON('/_url', {
            a: $('#buttonpress').val()
        }).done(function (data) {
            $("#result").text(data.result);
        });
        e.preventDefault(); // This is important, it assures that form won't be sent
    });
});