我有一系列不同名称的表单元素,我将发布一个作为示例。我不能将名称硬编码到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不是我强大的领域。
答案 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);
}
})
})
})
如果您想直接通过名称输入输入,则需要使用双反类来转义方括号并通过名称到达该输入。使用:
$('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):
<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>
$('.trigger').click (function () {
closest_checkbox = $(this).siblings('input[type=checkbox]');
closest_checkbox.prop('checked', !closest_checkbox.prop('checked'));
});
您可以使用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');