如何将 html id 和名称作为参数传递给 dojo javascript 模块?

Posted

技术标签:

【中文标题】如何将 html id 和名称作为参数传递给 dojo javascript 模块?【英文标题】:How do I pass html ids and names to a dojo javascript module as parameters? 【发布时间】:2020-05-14 21:02:16 【问题描述】:

我相信我正在使用 dojo

我的 JS 模块的顶部使用了这些声明:

dojo.provide("com.kmbs.portlet.itsform.broadcastemailRequest"); dojo.require("com.kmbs.portal.core");

我一直在寻找有关如何将 html id 和 name 属性从 JSP 传递给模块的文档。 JSP 上有一个表单,并且有几个输入字段会根据用户输入动态(通过 JS)更改。

例子:

我有这个 html:

<input id="$nsverifyurlflag" type="hidden" name="verifyurlflag" value="0">

我想在模块中使用这个JS(需要转换成模块格式,我知道。)

function VerifyUrl() 
    var emailUrl = document.getElementById("$nsemailUrl").value;
    if(emailUrl)
        // Set to True (1)
        $('#$nsverifyurlflag').val("1");
        window.open( emailUrl, '_blank', 'toolbar=no,scrollbars=yes,menubar=yes,location=no,resizable=yes,height=500,width=700,top=100');
    

其中 $ns 是用于自动命名空间前缀的 JSTL。

请指教。谢谢。

编辑:

目前在 JSP 中使用 JS 调用 VerifyUrl 是这样的:

<button class="btn" onclick="VerifyUrl()" id="$nsverifyUrlBtn" disabled>Verify URL</button>

【问题讨论】:

那么您需要一种方法来访问函数中动态创建的元素吗?你能添加更多的html代码吗?还有VerifyUrl() 怎么称呼? @Swati - 不完全是,我想要一种将 html 属性动态传递给 javascript dojo 模块的方法。例如将输入 id 值传递给它,这样我就不需要在模块本身中对其进行硬编码。 【参考方案1】:

我不知道我是否正确理解了您的问题,但是您可以在点击VerifyUrl() 时直接将ns 的值作为参数传递。所以,您的按钮如下所示:

<button class="btn" onclick="VerifyUrl('$ns')" id="$nsverifyUrlBtn" disabled>Verify URL</button>

演示代码

//value parameter passed in function will have $ns value
function VerifyUrl(value) 
  var emailUrl = document.getElementById(value + "emailUrl").value;
  if (emailUrl != null) 
    // Set to True (1) 
    $('#' + value + 'verifyurlflag').val("1");
    window.open(emailUrl, '_blank', 'toolbar=no,scrollbars=yes,menubar=yes,location=no,resizable=yes,height=500,width=700,top=100');
  
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="aemailUrl" type="text" name="emailUrl" value="https://www.google.com/">
<input id="averifyurlflag" type="text" name="verifyurlflag" value="0">
<!--pass in function $ns i.e : VerifyUrl('$ns')-->
<button class="btn" onclick="VerifyUrl('a')" id="$nsverifyUrlBtn">Verify URL</button>

【讨论】:

以上是关于如何将 html id 和名称作为参数传递给 dojo javascript 模块?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 vue.js 值作为参数传递给刀片中的路由

Codeigniter - 如何将 JSON 作为参数传递给视图 [重复]

如何将 C# 对象作为参数传递给 Javascript 函数

Joomla 2.5:将参数传递给联系表格

如何使用 HTMX 和 Django 将参数传递给视图?

将数组作为参数传递给 plsql 过程