我是 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/