使用jquery获取元素的名称


Grab the name of an element with jquery

我有一系列Form元素,每个元素都有不同的名称,我将发布一个作为示例。我无法将名称硬编码到Jquery中,因为除非我检查元素,否则我不会知道名称。

除此之外,还有一个元素:

<label class="checkbox">
    <input type="checkbox" 
        name="aisis_options[package_Aisis-Related-Posts-Package-master]"
        value="package_Aisis-Related-Posts-Package-master" checked="" /> 
    Aisis-Related-Posts-Package-master 
    <a href="#">(Disable)</a>
</label>

问题是这样做:

点击disable,获取这个元素的名称,然后做两件事,一是如果元素被选中(在本例中不是),二是将名称传递给php变量,然后php变量可以进行处理。

我该怎么做?Jquery不是我的强项。

下面是一个不了解更多代码的示例:

$(function () {
    $('input:checkbox').click(function () {
        $(this).prop('disabled', true);
        var iName = this.name;
        $.ajax({
            url: "file.php",
            data: {
                'inputname': iName
            },
            success: function (data) {
                alert(data.returned_val);
            }
        })
    })
})

此处演示

如果你想直接通过名称到达输入,你需要使用双后拉来转义方括号,并通过名称到达该输入。用途:

$('input[name=aisis_options''[package_Aisis-Related-Posts-Package-master'']]')

您可以添加带有复选框的onchangeonchange="f(this);"

在jsf()函数中,您可以使用this.name来获取名称,使用this.value来获取值等,并可以随心所欲。

要检查/取消锁定,可以像这样使用$element.prop('checked', true/false);(fiddle):

HTML

<input 
    type="checkbox" 
    name="aisis_options[package_Aisis-Related-Posts-Package-master]" 
    value="...." 
    checked="checked" 
/> Aisis-Related-Posts-Package-master 
<a href="#" class="trigger">(Disable)</a>

JS

$('.trigger').click (function () {
    closest_checkbox = $(this).siblings('input[type=checkbox]');
    closest_checkbox.prop('checked', !closest_checkbox.prop('checked'));
});

JS第2部分:AJAX

您可以使用jQuery插件serializeObject构建一个包含所有name:value组合的对象,您的表单提交事件处理程序将类似于:

$('form').submit( function (e) {
    // Prevent the form from being sent normally since we want it ajaxified
    e.preventDefault(); 
    // Send request to php page
    $.ajax({
        type: "POST",
        url: "some.php",
        data: $('form').serializeObject()  // <== Magic happens here
    });
});

PS。不要忘记包含serializeObject插件并为表单提供唯一的id,$('#unique_id')$('form')要好得多,后者将匹配页面中的所有表单。

要获取name属性的值,可以使用:

$(this).attr('name');