我在尝试解决JQuery $ .each()迭代时遇到了一些麻烦
这是我的阵列,为方便起见限制了结果
[{"GROUP_ID":"143",
"GROUP_TYPE":"2011 Season",
"EVENTS":[
{"EVENT_ID":"374","SHORT_DESC":"Wake Forest"},
{"EVENT_ID":"376","SHORT_DESC":"Yale"},
{"EVENT_ID":"377","SHORT_DESC":"Michigan State"}]
},
{"GROUP_ID":"142",
"GROUP_TYPE":"2010 Season",
"EVENTS":[
{"EVENT_ID":"370","SHORT_DESC":"Duke"},
{"EVENT_ID":"371","SHORT_DESC":"Northwestern"},
{"EVENT_ID":"372","SHORT_DESC":"Brown"}]
}]
Run Code Online (Sandbox Code Playgroud)
我的第一个$ .each迭代非常有效,但"EVENTS"的子迭代是我遇到问题的地方
我的第一个$ .each()函数
$.each(json, function(key) {
html = '<a href="'+json[key].GROUP_ID+'">';
....
Run Code Online (Sandbox Code Playgroud)
我的非工作第二个$ .each()函数
$.each(json.EVENTS, function(key) {
newHTML += '<p>'+json.EVENTS[key].SHORT_DESC+'</p>';
...
Run Code Online (Sandbox Code Playgroud)
我(松散地)理解这不是一个单一的JSON对象,而是一个JSON对象数组,但不理解第一个版本是否有效,为什么第二个版本没有
一旦我理解这是一个$ .each()中的$ .each(),我想知道最终的结果,我知道下面的代码不起作用,而且很可能是愚蠢的,但是我想知道我在尝试什么实现:通过父级迭代父级然后子级
$.each(json, function(key) {
html = '<a href="'+json[key].GROUP_ID+'">';
$.each(json[key].EVENTS, function(subkey) {
html = '<a href="'+json[key]EVENTS[subkey].SHORT_DESC+'">';
...
Run Code Online (Sandbox Code Playgroud) 我有一个使用Bootstrap 3.3.4,Select2 4.0和Jquery Validation 1.13.1的项目
我已经将jquery验证器默认设置为样式引导程序3类,如此
$.validator.setDefaults({
errorElement: "span",
errorClass: "help-block",
highlight: function (element, errorClass, validClass) {
$(element).addClass(errorClass);
$(element).closest('.form-group').removeClass('has-success').addClass('has-error');
},
unhighlight: function (element, errorClass, validClass) {
$(element).removeClass(errorClass);
$(element).closest('.form-group').removeClass('has-error').addClass('has-success');
},
errorPlacement: function(error, element) {
if(element.parent('.input-group').length) {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
}
});
Run Code Online (Sandbox Code Playgroud)
但是这些默认值不会将select2字段设置为相同...在下图中,"metals"选择是一个bootstrap字段,而"colors"select是一个select2字段.

我尝试搜索其他SO,但所有这些都使用3.5.xx版本的select2
我包括了一个示例的jsfiddle,我正在寻找调整验证器的默认值,让select2看起来统一
css jquery jquery-validate twitter-bootstrap-3 jquery-select2-4
我在keydown和停止传播时遇到了困难
我不希望我的页面刷新,我已经尝试了我能想到的每一种方式,我目前的代码是
<script>
$(document).ready(function() {
var e = jQuery.event( 'keydown', { which: $.ui.keyCode.ENTER } );
$('#id_number').trigger(e, function(event){
event.preventDefault();
event.stopPropagation();
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么?我认为事件被正确调用,我有正确链接的jquery和jquery ui并且没有收到控制台错误
更新 很好它正在工作,现在我正在获取对象函数的属性'事件'(a,b){return new e.fn.init(a,b,h)}不是下面代码的函数错误
$(document).ready(function() {
var e = jQuery.event( 'keydown', { which: $.ui.keyCode.ENTER } , function(event){
event.preventDefault();
event.stopPropagation();
});
$('#id_number').trigger(e);
});
Run Code Online (Sandbox Code Playgroud)
更新#2 - 修复
我学到的东西
把它改写成这个,工作得非常好
$(document).ready(function() {
$('#id_number').keydown(OnKeyDown);
});
function OnKeyDown(e){
var code = (e.keyCode ? e.keyCode : e.which); //to support both methods
if(code == 13) { //the Enter …Run Code Online (Sandbox Code Playgroud) 根据CF9 cfquery文档,我应该能够在cfquery结果中返回oracle ROWID.
我在所有方面都失败了,它根本不会返回任何身份或生成的密钥
我正在使用jdbc oracle瘦客户端,有人能指出我在正确的方向吗?
我指的是之前标记为正确答案的SO Coldfusion计算总和(循环?),但代码对我不起作用.
我试图从几个领域创建一个总计.但我收到的错误是"未定义变量xxx".这是因为我试图从循环中为所有记录追加值
<cfoutput>
<cfquery name="ActivityReceipts" dbtype="query">
SELECT
activity,
qty_approved,
location,
payment_amount,
shipping_cost,
handling_cost
FROM rc.RC1
WHERE id_number = '#Receipts.id_number#'
</cfquery>
<cfloop query="ActivityReceipts">
<tr>
<td style="text-align:left;">#ActivityReceipts.activity#</td>
<td style="text-align:left;">#ActivityReceipts.qty_approved#</td>
<td style="text-align:left;">#ActivityReceipts.location#</td>
<td style="text-align: right; padding-right: 80px;">#ActivityReceipts.payment_amount#</td>
</tr>
<cfset grandTotal = grandTotal + ( #ActivityReceipts.payment_amount# + #ActivityReceipts.handling_cost# + #ActivityReceipts.Shipping_cost# ) />
</cfloop>
<td>#grandTotal#</td>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)
请注意,如果我将grandTotal变量设置行更改为
<cfset grandTotal = ( #ActivityReceipts.payment_amount# + #ActivityReceipts.handling_cost# + #ActivityReceipts.Shipping_cost# ) />
Run Code Online (Sandbox Code Playgroud)
它不会导致错误,但它也只是最后一行的总和,而不是所有的总和.
我有一个html表单提交给C#ashx处理程序,我希望将插入/更新数据库
我用PHP和Coldfusion编写了这个,但我无法弄清楚如何在C#中做到这一点
HTML表单
<form id="copyto">
<input type="hidden" name="operation" value="update" />
<label><input type="checkbox" name="children[]" checked="checked" value="001">
Andrew Regan</label>
<label><input type="checkbox" name="children[]" checked="checked" value="101">
Arthur Regan, III</label>
<input type="checkbox" name="children[]" checked="checked" value="968">
Tim Reagan
</form>
Run Code Online (Sandbox Code Playgroud)
C#ASHX处理程序
foreach(string key in context.Request.Params["children"])
{
ListDictionary updateParams = new ListDictionary();
updateParams.Add("rowid", key);
string sSql = @"insert into temp select * from children where c.id = :rowid";
dbi.ExecuteNonQuerySql(sSql, updateParams);
}
Run Code Online (Sandbox Code Playgroud)
通常我会迭代PHP中的$ _POST ['children'],然后执行sql
这究竟是如何翻译的?
编辑
好吧我几乎得到了这个,但是我的迭代器遍历了所有请求集合变量,我希望它只遍历一个特定的命名变量,在本例中是"children"
即localhost/page?operation = update&children = 9&children = 8&children = 17
foreach(string key …Run Code Online (Sandbox Code Playgroud) 我正在使用 CF9 和 ColdBox。我正在做的是循环查询,并在最后使用cfdocumentitem pagebreak. 但是,它总是在最后给我一个额外的空白页。这几乎让我发疯,所以我听从专家的建议。
<cfdocument format="PDF" overwrite="Yes" localUrl="yes" pageType = "letter">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<cfquery name="Receipts" dbtype="query">
SELECT distinct id_number
FROM rc.RC1
</cfquery>
<cfoutput>
<cfloop query="Receipts">
<!--- removed for brevity --->
<cfdocumentitem type="pagebreak" />
</cfloop>
</cfoutput>
</body>
</html>
</cfdocument>
Run Code Online (Sandbox Code Playgroud) 好吧,我很难过,我有一个CF11 Web应用程序,它没有通过SQL注入的Web应用程序审计报告,这个报告是由Acunetix制作的.
无论如何,该报告在我的网站上给了我10页,容易受到sql注入,但我检查了代码,我实际上在每个实例中使用cfqueryparam
处理程序调用的其中一个查询的示例
<cfquery datasource="#application.DSN#" name="qResult" result="r">
update #table# s
set s.loader_status = <cfqueryparam cfsqltype="cf_sql_varchar" value="#ucase(arguments.status)#">
<cfif isDefined("bio_loader_status") and bio_loader_status neq ''>
, s.bio_loader_status = <cfqueryparam cfsqltype="cf_sql_varchar" value="#ucase(bio_loader_status)#">
</cfif>
, s.session_id = NULL
, s.session_expiration = NULL
<cfif isDefined("arguments.rowid") and arguments.rowid neq ''>
where s.rowid = CHARTOROWID(<cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.rowid#">)
</cfif>
</cfquery>
Run Code Online (Sandbox Code Playgroud)
我读过的所有内容都告诉我,我可以防止sql攻击(使用cfquery param,使用datasurce和table变量等),但报告另有说法
URL encoded GET input rowid was set to 1'"
Error message found: Error Executing Database Query
GET /index.cfm/status?rowid=1'%22&type=billing HTTP/1.1
Run Code Online (Sandbox Code Playgroud)
有人能说清楚我做错了吗?或者报告的假设是否正确?