javascript - asp调用javascript去掉括号

标签 javascript asp-classic

我是 asp 和 vbscript 的新手,并尝试将数据库条件列表传递给 javascript。该条件将用于 sql 语句中的子句(如果它是这样称呼的)。问题是括号被删除了!

in 子句的条件如下所示

  • “('未定义')”
  • “('条件')”
  • “('B条件')”
  • "('C 条件', 'D 条件')"
  • “('E 条件', 'F 条件', 'G 条件')”
  • “('H条件','I条件','J条件','K条件')”

javascipt 采用行和列的参数并搜索数据库并根据这些条件或条件集返回表条目列表。

我一直在从事以下工作:

Response.Write "<td WIDTH='6%'  VALIGN='TOP' ALIGN='CENTER' bgcolor = " & ObjDic(elem).clrPreExisting & ">" & vbCRLF
Response.Write "<a href = ""javascript:alert("objDic(elem).critRow")""><font size='2' face='Arial' color='#000000'>" & ObjDic(elem).Get_PreExistingVal(RunningTotal.PreExisting) & "</font></a>" &vbCRLF
Response.Write "</td>" & vbCRLF

立即窗口中显示 objDic(elem).critRow 的值

objDic(elem).critRow “('没有定义的')” 但 Java 警报显示未定义。

最佳答案

代码似乎存在一些问题。首先,您可以避免使用 Response.Write在大多数情况下,通过将内联字段值与 <%= %> 一起使用标签。它们是 Response.Write 的简写形式,将变量、属性或函数的内容写入它们出现的位置。对于您的情况,您可以替换:

Response.Write "<td WIDTH='6%'  VALIGN='TOP' ALIGN='CENTER' bgcolor = " & ObjDic(elem).clrPreExisting & ">" & vbCRLF
Response.Write "<a href = ""javascript:alert("objDic(elem).critRow")""><font size='2' face='Arial' color='#000000'>" & ObjDic(elem).Get_PreExistingVal(RunningTotal.PreExisting) & "</font></a>" &vbCRLF
Response.Write "</td>" & vbCRLF

...与...

<td WIDTH='6%'  VALIGN='TOP' ALIGN='CENTER' bgcolor = '<%= ObjDic(elem).clrPreExisting %>'>
    <a href = "javascript:alert('<%= objDic(elem).critRow %>')"><font size='2' face='Arial' color='#000000'>
        <%= ObjDic(elem).Get_PreExistingVal(RunningTotal.PreExisting) %>
    </font></a>
</td>

请,删除所有内联格式并将其替换为样式类...

<style>
    .cellClass {width: 6%; text-align: center; vertical-align: top;}
    .cellClass a {font-size: 2; font-family: arial; color: black;}
</style>
...
...
<td class="cellClass" bgcolor = "<%= ObjDic(elem).clrPreExisting %>">
    <a href = "javascript:alert('<%= objDic(elem).critRow %>')">
        <%= ObjDic(elem).Get_PreExistingVal(RunningTotal.PreExisting) %>
    </a>
</td>

我还建议坚持使用一种形式的引号。您可以使用多个不同的属性来标识您的属性,包括 " , ' , ""甚至没有。当我将值应用于属性时,我总是在经典 ASP 中使用双语音标记。

JavaScript 略有不同,尽管我仍然使用双语音标记来指定属性的分配,但 JavaScript 代码中的语音标记通常是撇号 ( ' ):

<a href="javascript:alert('Use single speech marks in strings.');">Click me</a>

在 VBScript 字符串中,您应该通过将语音标记加倍来转义它们,所以...

Response.Write("Paul said: ""Use double speech marks in strings"".")

最后,如果您希望代码按原样工作,则您的代码略有错误。试试这个:

Response.Write "<td WIDTH='6%'  VALIGN='TOP' ALIGN='CENTER' bgcolor = " & ObjDic(elem).clrPreExisting & ">" & vbCRLF
Response.Write "<a href = ""javascript:alert(" & objDic(elem).critRow & ")""><font size='2' face='Arial' color='#000000'>" & ObjDic(elem).Get_PreExistingVal(RunningTotal.PreExisting) & "</font></a>" &vbCRLF
Response.Write "</td>" & vbCRLF

请注意中间行中的 JavaScript - 它缺少属性值前后的串联字符 ( & )。

关于javascript - asp调用javascript去掉括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32319859/

相关文章:

javascript - React 根据结果数量动态创建按钮

javascript - 单击超链接并更改 ID 的 CSS

html - 是否有 Markdown 的 VBScript 实现?

php - 是否可以在 Drupal 和 ASP&SQL Server 平台之间集成用户数据库?

asp.net - 从 ASP 重定向到 ASP.Net session

asp-classic - ASP - 如何获取引荐站点的 URL

javascript - Highstock/Highcharts 数据在视口(viewport)/ Canvas 之外分组点

javascript - 日期选择器关闭时的功能

vbscript - 字符串不为 null、空或空字符串

javascript - 无法读取简写的 javascript/query