我有很少的问题和答案的研究表格,我试图从表格元素的id(广播,复选框等等)中捕获ID。 HTML表单是从MySQL动态生成的,这就是为什么id和#name只有共同的价值"问题"。
我有这样的输入:
<input type="text" name="question[1]" id="question-1" value="">
<input type="radio" name="question[2]" id="question-2" value="1"> Foo
<textarea name="question[3]" id="question-3"></textarea>
我需要从id中捕获数字。例如。 从id =&#34;问题3&#34; 中捕获3号。有可能这样做吗?
有我的js代码。当您更改ID已开始且#34;问题 - &#34;的任何表单元素的值时,数据将被发布。它有效,但我需要在ID元素中检测数字,因为我想生成下一个ajax请求(GET)来删除答案(例如/ research / delete-answer /?id = 3)。
$('[id^=question-]').change(function() {
var formId = <?= $this->form->id; ?>;
var dataString = $('[id^=question-]').serializeArray();
$.ajax({
type: "POST",
url: "/research/save/?id=" + formId,
data: dataString,
success: function(data, status) {
console.log('Saved [' + status + ']');
console.log('Data [' + dataString + ']');
}
});
});
感谢您的帮助。
答案 0 :(得分:0)
id="[^-]+-(\d+)
试试这个。看看演示。
http://regex101.com/r/pQ9bV3/4
var re = /id="[^-]+-(\d+)/g;
var str = '<input type="text" name="question[1]" id="question-1" value="">\n<input type="radio" name="question[2]" id="question-2" value="1"> Foo\n<textarea name="question[3]" id="question-3"></textarea>';
var subst = '';
var result = str.replace(re, subst);
答案 1 :(得分:0)
$('[id^=question-]').change(function(event) {
var id = $(event.target).attr('id').replace('question-', '');
应该在触发变更事件的元素的id内给出数字,如果这是你想要的,我不完全确定你在问什么。