いくつかのパラメーターを渡すフォームがあります。これまでのところ、在庫パラメーターが渡されています。
var params = "title=" + document.getElementById("title").value +
"&url=" + document.getElementById("url").value +
"&snippet=" + document.getElementById("snippet").value +
"&tags=" + document.getElementById("tags").value +
"&status_bookmark=" + document.getElementById("status_bookmark").value +
"&comment=" + document.getElementById("comment").value +
"&status_comment=" + document.getElementById("status_comment").value;
このパラメーター文字列に追加のフォーム要素を追加しようとしています。
var i, lng = document.getElementById('addbookmark').length;
// If the length property is undefined, then there is only one checkbox.
if (typeof lng === "undefined") {
params + "&topic-link-item-1=" + document.getElementById("topic-link-item-1").value;
params + "&topic-link-comment-box-1=" + document.getElementById("topic-link-comment-box-1").value;
}
else {
for (i = 0; i < lng; i++) {
params + "&topic-link-item-" + i + "=" + document.getElementById("topic-link-item-" + i).value;
params + "&topic-link-comment-box-" + i + "=" + document.getElementById("topic-link-comment-box-" + i).value;
}
}
ここでは、 StackOverflow の別の記事から抜粋したコードを使用しました。ご覧のとおり、jQuery を介して別の場所で生成しているアドホック フォーム要素と一致する一連の対になったパラメーターを構築しようとしていますが、これは機能します。
ただし、これらの値はフォームを介して渡されていないように見えますが、他のフォーム要素は渡されています。
助言がありますか?
アップデート
提案に従ってコードを修正しましたが、機能していません。
var i, formObj = document.form['addbookmark'], formObjLng = document.form['addbookmark'].length;
// If the length property is undefined, then there is only one checkbox.
if ((typeof formObjLng !== "undefined")) {
for (i = 0; i < formObjLng; i++) {
if ((formObj.elements['topic-link-item-' + i].type == "checkbox") && (formObj.elements['topic-link-item-' + i].checked)) {
params = params + "&topic-link-item-" + i + "=" + encodeURIComponent(document.getElementById("topic-link-item-" + i)).value;
params = params + "&topic-link-comment-box-" + i + "=" + encodeURIComponent(document.getElementById("topic-link-comment-box-" + i)).value;
}
}
}
フォームに関しては、「addbookmark」という ID を持つ単純なフォームであり、前に述べたことを繰り返しますが、ここで試みていることを除いて、他のすべては機能します。