Javascript 如何在jinja2中中断for循环
嗨,用户们,请告诉我如何在jinja 2中中断循环 我正在使用Javascript 如何在jinja2中中断for循环,javascript,django,jinja2,Javascript,Django,Jinja2,嗨,用户们,请告诉我如何在jinja 2中中断循环 我正在使用for循环和if条件,如果我的if条件为true 这是我的密码 function refercheck(){ var input_value = document.getElementById('refer').value; {% for i in refer %} document.getElementById("valid").innerHTML = ''; if(
for
循环和if
条件,如果我的if
条件为true
这是我的密码
function refercheck(){
var input_value = document.getElementById('refer').value;
{% for i in refer %}
document.getElementById("valid").innerHTML = '';
if( input_value == "{{i.refercode}}" ){
$('#valid').append('Referred By {{i.username}}');
}
我在input onkeyup=“referecheck()中使用此函数
我从查看功能发送dict
我的dict键是refer我正在发送所有用户数据并检查输入是否与其他用户参考代码相同这是只给我最后一行参考代码相同请告诉我当我的if条件为真或其他解决方案时如何中断循环,可以在for循环语句中添加条件
简单地说:
function refercheck(){
var input_value = document.getElementById('refer').value;
document.getElementById("valid").innerHTML = '';
{% for i in refer if input_value == i.refercode %}
$('#valid').append('Referred By {{i.username}}');
{% endfor %}
更新:Jinja2不支持中断或继续状态 你必须用其他方法来解决这个问题 这就是我想到的 我没有尝试代码,但这里是想法
function refercheck(){
var input_value = document.getElementById('refer').value;
refer = {{refer|safe}}
for (i = 0; i < refer.length; i++) {
document.getElementById("valid").innerHTML = '';
if( input_value == i.refercode ){
$('#valid').append('Referred By '+i.username);
break;
}
}
}
函数referecheck(){
var input_value=document.getElementById('referel').value;
REFERE={{REFERE | safe}}
对于(i=0;i
如果i.referecode
和i.referecode
不起作用,请尝试i['referecode']
和i['referecode']
循环控制
导入名称:jinja2.ext.loopcontrols
此扩展增加了对循环中的中断和继续的支持。启用后,Jinja提供了这两个关键字,它们的工作方式与Python中的工作方式完全相同
提供在模板循环中中断和继续的能力,就像标准的中断和继续Python关键字一样
资料来源:
添加扩展将在创建时添加到Jinja环境中。创建环境后,无法添加其他扩展。要添加扩展,请向环境构造函数的extensions参数传递扩展类列表或导入路径。以下示例创建了一个加载了i18n扩展的Jinja环境:
jinja_env=Environment(扩展=['jinja2.ext.loopcontrols'])
Jinja2支持中断和继续。您只需安装
ext.loopcontorls
并激活jinja环境
这是文档链接。
我不确定这在Django中如何工作,但在Flask中,您只需在应用程序工厂中添加扩展:
app = Flask(__name__,
static_url_path='',
static_folder='../app/static',
template_folder='../app/templates')
app.jinja_env.add_extension('jinja2.ext.loopcontrols')
可能是sir的重复可能是sir的重复我尝试了一下,它给了我错误
“for”语句应该使用“for x in y”格式:for i in refere if input_value==i.referecode
我更新了我的注释。我希望这解决了你的问题
app = Flask(__name__,
static_url_path='',
static_folder='../app/static',
template_folder='../app/templates')
app.jinja_env.add_extension('jinja2.ext.loopcontrols')