jquery并修改两个隐藏的输入字段

标签 jquery

我有一个表格,其中显示一些信息,供用户“批准”或“拒绝”某些项目。我创建了两个图像:十字符号表示拒绝,复选符号表示批准。每次单击时,我都会将唯一的 ID 添加到其各自的隐藏表单字段(rejectedProjs 和approvedProjs)。此外,如果用户单击“拒绝”,那么我将显示一个文本框,以便他们可以输入原因。这是我到目前为止所拥有的:

 $("a[name^=reject-]").each(function() {

     var name = $(this).attr('name');    
     var p_project_number = name.split('-')[1]; 
   $("a[name=reject-"+p_project_number+"]").tipbox("Reject pricing for "+p_project_number, 0, "reject-"+p_project_number);
     $(this).click(function() { 
$("textarea[name=rejReason-"+p_project_number+"]").show();   
rP = $("#rejectedProjs").val();
$("#rejectedProjs").val(rP+','+p_project_number);
alert('rejects: '+$("#rejectedProjs").val());
     });   
 });

有两个问题。首先,如果我对同一项目单击拒绝按钮两次,则警报框将显示项目编号两次。如何检查 $("#rejectedProjs").val() 以查看该项目编号是否已经存在?其次,如果我先拒绝然后批准,我需要从 $("#rejectedProjs").val() 中删除该项目。不知道该怎么做。提前致谢。

最佳答案

我会使用数组而不是隐藏输入。通过这种方式,您可以轻松地在数组中搜索现有值、添加新值和删除值。然后,在操作完成后,使用 array.join() 将隐藏输入的值设置为数组。

一个非常简单的示例如下所示:

var accepted = new Array();
var rejected = new  Array();

function process(action, id) {
    if(action == "accept") {
        // look for item in accepted array, add if doesnt exist
        if(findInArray(accepted, id) == -1) {
            accepted.push(id);
        }

        // look for item in rejected array, remove if exists

        var rejectedIdx = findInArray(rejected, id);
        if(rejectedIdx == -1) {
            accepted.splice(rejectedIdx, 1);
        }
    } else {
        // The same, but for rejected ids. Not included for brevity...
    }

    // update hidden inputs
    $("hiddenAccepted").val(accepted.join(","));
    $("hiddenRejected").val(rejectedaccepted.join(","));
}

function findInArray(array, value) {
    for(var i = 0; i < array.length; ++i) {
        if(array[i] == value] return i;
    }
    return -1;
}

并且不要忘记在页面中实际包含隐藏的输入:

<input type="hidden" name="hiddenAccepted" />
<input type="hidden" name="hiddenRejected" />

关于jquery并修改两个隐藏的输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2134480/

相关文章:

javascript - 如何使用 jquery 在 Django 中提供图像

jquery - 在 HTML 字符串中查找元素

jquery - 使用 Jquery 通过 SELECT 字段进行表单验证

javascript - XHR block 上传在上传文本文件时出现一个问题

javascript - 选择对应的下一个子元素

javascript - 从另一个回调访问一个回调中定义的变量

javascript - HTML 输入字段,记住光标位置

javascript - $.get 调用外部的变量值尚未设置

javascript - jQuery this var 在匿名函数之外

javascript - 图像加载失败 - Jquery 捕获事件并重试