【问题标题】:give multiple params for a tag onclick function in JSP为 JSP 中的标签 onclick 函数提供多个参数
【发布时间】:2019-04-10 01:52:16
【问题描述】:

我使用标签 onclick 功能来删除特定文档。 我用三个参数调用函数。

但我的正则表达式不包含特定情况。

一般来说,它像“测试”一样有效。 但有些情况不起作用。

像这种情况 => “圣约翰”

 //return '<tr><td>' + key + '</td><td>' + value + '</td><td>' + '<a href="javascript:void(0);" onclick="deleteName(\'' + key + '\'' + ',\'' + value + '\'' + ',\'' + regionCode + '\');" >[ 삭제 ]</a>' + '</td></tr>';
 //return '<tr><td>' + key + '</td><td>' + value + '</td><td>' + '<a href="javascript:void(0);" onclick="deleteName(\'' + key + '\'' + ',\'' + '/\"'+ value + '\'' + '\"/ ' + ',\'' + regionCode + '\');" >[ 삭제 ]</a>' + '</td></tr>';
const itemsArray = tableData.map(function(item) {
                    var key =  Object.keys(item)[0];
                    var value = Object.values(item);
                    //return '<tr><td>' + key + '</td><td>' + value + '</td><td>' + '<a href="javascript:void(0);" onclick="deleteName(\'' + key + '\'' + ',\'' + value + '\'' + ',\'' + regionCode + '\');" >[ 삭제 ]</a>' + '</td></tr>';
                    //return '<tr><td>' + key + '</td><td>' + value + '</td><td>' + '<a href="javascript:void(0);" onclick="deleteName(\'' + key + '\'' + ',\'' + '/\"'+ value + '\'' + '\"/ ' + ',\'' + regionCode + '\');" >[ 삭제 ]</a>' + '</td></tr>';
                    return '<tr><td>' + key + '</td><td>' + value + '</td><td>' + '<a href="javascript:void(0);" onclick="deleteName(\'' + key + '\''  + ',\'' + "\""  + value  + "\"" + ',\'' + regionCode + '\');" >[ 삭제 ]</a>' + '</td></tr>';
                });

这是预期的键值示例

const key = "en";
const value = "test"; // it works
const value = "St. John's"; // it doesn't work.
const regionCode = "AG-ANU";

如果onclick函数调用成功,

它调用这个函数

function deleteName(key, value, regionCode) {
       $.ajax({
            url: "http://localhost:8080/api/v1/regions/" + regionCode + "/names?lang=" + key + "&name=" + value,
            method: "DELETE",
            success: function() {
                alert("삭제되었습니다.");
                location.reload();
            },
            error: function(err) {
                console.log(err);
            }
        });
    }

我需要值部分正则表达式的帮助。

【问题讨论】:

    标签: javascript java regex spring-boot jsp


    【解决方案1】:

    这不是好办法,但我是这样解决的。

      const itemsArray = tableData.map(function(item) {
                        var key =  Object.keys(item)[0];
                        var value = Object.values(item)[0];
                        var valueStr = JSON.stringify(value);
                        var valueString =   value.replace(/'/gi, "\\\'");
    
                        var keyValueRegionCode = key + "|" + valueString + "|" + regionCode;
    
                        return '<tr><td>' + key + '</td><td>' + value + '</td><td>' + '<a href="javascript:void(0);" onclick="deleteName(\'' + keyValueRegionCode + '\');">[ 삭제 ]</a>' + '</td></tr>';
                    });
    

    然后调用keyValueRegionCode

    function deleteName(keyValueRegionCode) {
            var keyValue = keyValueRegionCode.split("|")[0];
            var nameValue = keyValueRegionCode.split("|")[1];
            var regionCode = keyValueRegionCode.split("|")[2];
           $.ajax({
                url: "http://localhost:8080/api/v1/regions/" + regionCode + "/names?lang=" + keyValue + "&name=" + encodeURIComponent(nameValue),
                method: "DELETE",
                success: function() {
                    alert("삭제되었습니다.");
                    location.reload();
                },
                error: function(err) {
                    console.log(err);
                }
            });
        }
    

    1) value.replace(/'/gi, "\\'"); -> 这个正则表达式使单个撇号像这样。 (\')

    2) 使参数成为一个方便调用函数的参数。

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 2019-03-27
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 2018-10-05
      相关资源
      最近更新 更多