如何在javascript函数中将输入字段名称作为参数传递?

时间:2016-06-05 03:29:03

标签: javascript jquery

我创建了一个JavaScript函数,用于检查数据库中是否已存在某些数据。我想知道的是,是否有办法将JavaScript传递中的输入字段名称作为参数

这是我的代码

    function checkDataAvailability(displayid,input_id,fieldname)
    {
        'use strict';
        $(document).ready(function(){
            //var x = document.getElementByName(fieldname).elements;
            $(displayid).load('php/signcheck.php').show();
            $(input_id).keyup(function(){
                 },
                $.post('php/signcheck.php', { username: form.x.value }, 
              //$.post('php/signcheck.php', { username: form.fieldName.value }, 
                function(result){
                    $(displayid).html(result).show();
                });
            });

        });
    }
    var a =  checkDataAvailability ('#userstat','#username_input','username');

一点解释。两个注释行是我尝试将字段名称分别作为参数运行的两种方法。不幸的是他们没有工作。

这是我的表格

<form action="php/register_exec.php" method="POST" name="form">
Username <span id="userstat" class="checkerr"></span>
<input type="text" name="username" id="username_input" required>
</form>

3 个答案:

答案 0 :(得分:1)

将表单字段名作为参数传递与将字符串参数传递给函数

没有什么不同
var a = checkDataAvailability ('userstat','username_input','username');

重要的是你在函数内部做了什么。

您可以通过两种方式获取输入字段的值

  1. 使用value属性直接读取值:

    document.getElementById('username_input').value
    

    document.getElementById(fieldid).value //if you pass fieldid to your function
    
  2. 直接使用表单字段

    //assuming you pass formname and fieldname as variables to your function
    var form = document.getElementById(formname);
    var inputvalue = form.elements.namedItems(fieldname).value
    
  3. 如果需要,您可以修改它们以适合您的jquery语法。

答案 1 :(得分:0)

由于您已经在使用jQuery库,因此可以继续使用它。

$('input[name="' + fieldname + '"]').val()

答案 2 :(得分:0)

有三种方法可以达到你想要的效果 -

  • 如果你想坚持使用当前的代码模式,那么用form [fieldname]替换form.fieldname会得到正确的结果。这是因为fieldname是一个字符串和表单。“some string”会给你一个错误。
  • 其他两种方式与neouser99和avck相同。