单击jQuery时不返回任何值

时间:2017-09-26 00:51:15

标签: javascript jquery html forms

我想要做的是在有人点击提交按钮时获取所有输入和数据。

我的代码HTML是这样的:

<form id="form" action="index.php" method="POST" class="register" name="Register">
    <label>Patient Name:</label>
    <input id="pname" name="pname" placeholder="John Doe" type="text" data-role="justText" value=""><br><br>
    <label>Phone Number:</label>
    <input id="ptel" type="tel" name="ptel" value=""><br><br>
    <label>Email:</label>
    <input id="pemail" placeholder="example@gmail.com" type="email" value=""><br><br>
    <button id="submit" class="submit" type="submit" name="register">Registrar</button>
</form>

不知道是否最好使用按钮或输入标签提交表单。并且jQuery处理我想要做的是:

jQuery.fn.extend({
        hello: function () {

            submitbutton = $(this).find('button').attr('id');
            $inputs = $(this).find('input');

            knowInputs = function() {
                $inputs.each(function () {
                    console.log( $(this).attr('name') );
                });
            }

            $('#'+submitbutton).on('click', function () {
                knowInputs();

            })
            return this;
        }
    });

所以,我把表单ID和init函数放在这样:

$(#form).hello();

P.D。:如果我把代码知道输出在on(click)之外,它似乎工作正常。我的问题是当我点击提交按钮时想要收集所有内容。

任何帮助都应该受到赞赏。提前谢谢!

1 个答案:

答案 0 :(得分:2)

表单具有本机Javascript事件submit。 jQuery还有一个函数$.serialize,它将表单转换为编码的URL字符串,这可能是您想要的最标准格式。您可以轻松地将其转换为JSON或JS对象。

$('#form').submit(function(e){
    e.preventDefault();
    return $(this).serialize();
});