用jquery抓取元素的名称

时间:2013-08-09 17:56:40

标签: php jquery html

我有一系列不同名称的表单元素,我将发布一个作为示例。我不能将名称硬编码到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>

要做的就是:

抓住这个元素的名字 - 点击禁用 - 并做两件事,一件 - 如果检查了元素,在这种情况下它不是,取消选中它,两个将名称传递给php变量,然后可以做处理

我该怎么做? Jquery不是我强大的领域。

4 个答案:

答案 0 :(得分:0)

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

$(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);
            }
        })
    })
})

演示 here

如果您想直接通过名称输入输入,则需要使用双反类来转义方括号并通过名称到达该输入。使用:

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

答案 1 :(得分:0)

您可以使用复选框添加onchange 平变化=&#34; F(本);&#34;

在js f()函数中,您可以使用this.name获取名称,使用this.value获取值等,并执行您想要的任何操作。

答案 2 :(得分:0)

要检查/取消确认,您可以使用$element.prop('checked', true/false); like this (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 plugin 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')更好,它将匹配页面中的所有表单。

答案 3 :(得分:-1)

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

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