-2

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

4 回答 4

0

要检查/取消检查,您可以$element.prop('checked', true/false); 像这样使用(小提琴)

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 插件 serializeObjectname: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')匹配页面中的所有表单要好得多。

于 2013-08-09T18:12:52.417 回答
0

您可以使用复选框 onchange="f(this);" 添加 onchange

在 js f() 函数中,您可以使用 this.name 获取名称,使用 this.value 获取值等,并做任何您想做的事情。

于 2013-08-09T18:05:32.653 回答
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);
            }
        })
    })
})

演示在这里

如果您想直接通过名称访问输入,则需要使用双反斜杠来转义方括号并通过名称访问该输入。利用:

$('input[name=aisis_options\\[package_Aisis-Related-Posts-Package-master\\]]')
于 2013-08-09T18:00:19.287 回答
-1

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

$(this).attr('name');
于 2013-08-09T18:00:07.537 回答