Select 具有多个 ID 的特定输入以解析为表单

Select specific input with multiple ID to parse as form

各位开发者大家好

我是一名学生,正在为一个学校项目使用 cordova 开发混合移动应用程序,我遇到了一个需要帮助的问题。

关于我的死胡同的背景信息。

  1. 我正在尝试从我的服务器向用户界面显示 15 张图像 select
  2. 我使用输入标签成功显示了具有唯一值和唯一 ID 的图像。结果是 (input id='1' value='1') (它将根据在我的服务器上找到的图像数量递增)。
  3. 这是我遇到的一个死结... 我意识到 jQuery selector 只能关注一个 ID 和值 $( #ID).val() 但我想在这里实现的是用户 select 图像输入和适当的 ID 被记录下来,通过对我的服务器的 AJAX 调用进行解析并记录到数据库.

function showAvatarResult(arr) {
    //if i is less than the total number of artefacts, increment by 1
    for (i = 0; i < arr.length; i++) {
        var avatarimage;
        var avatarid;
       
        avatarid = arr[i].avatarid;
        avatarimage = "<input type='image' id='" + avatarid +"' value='" + avatarid +"' src='" + serverURL() + "/images/avatars/" + arr[i].image + "' width=17%' height='17%'  />";


        
        $("#avatar").append(avatarimage);

    }
}
<form name="RegisterForm1" id="RegisterForm1">
<center>
<div id="avatar"></div>
</center>

</form>

function registerGroup() {
    username = $("#newusername").val();
    password = $("#newpassword").val();
    email = $("#emailaddress").val();
    school = $("#school").val();
    contactdetails = $("#contactdetails").val();
    groupname = $("#newgroupname").val();
    member1 = $("#member1").val();
    member2 = $("#member2").val();
    member3 = $("#member3").val();
    member4 = $("#member4").val();
    member5 = $("#member5").val();
    member6 = $("#member6").val();
    member7 = $("#member7").val();
    member8 = $("#member8").val();
    avatarid = //stuck here

    url = serverURL() + "/register.php"; 

    var JSONObject = {
        "username": username,
        "password": password,
        "email": email,
        "school": school,
        "phone": contactdetails,

        "groupname": groupname,
        "leader": member1,
        "member2": member2,
        "member3": member3,
        "member4": member4,
        "member5": member5,
        "member6": member6,
        "member7": member7,
        "member8": member8,
        "avatarid": //this is where I am stuck
    };

    $.ajax({
        url: url,
        type: 'GET',
        data: JSONObject,
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        success: function (arr) {
            _getRegisterGroupResult(arr); 
        }, error: function () {
            validationMsg();
        }
    });   
}

您应该为每个图像输入添加一个 class,例如 <input class='image-input' type='image' id=...(这应该是所有图像输入上相同的 class 名称),然后使用以下脚本设置一个单击时等于输入 ID 的变量:

<script>

var selectedImageId;

$('.image-input').click(function(){
    selectedImageId = $(this).attr('id');
});

</script>

然后,在您的 registerGroup() 函数中,像这样访问变量:

...
member8 = $("#member8").val();
avatarid = selectedImageId;

url = serverURL() + "/register.php"; 
...

...
    "member8": member8,
    "avatarid": avatarid
};
...

我会做一些输入验证,以确保您在 AJAX 请求中发送数据之前输入有效。