function validate(form) {
while ($('#img').attr('src')=="../static/img/placeholder.png") {
return false;
}
return true;
}
^此代码对我不起作用。我想要一个在占位符img仍然存在时不提交的表单。我用我的代码犯了什么错误?
HTML:
<form method="post" action="/{{ curr_user }}" enctype="multipart/form-data" onSubmit="return validate(this);" >
<div class="submit-image">
<img id="img" src="../static/img/placeholder.png" onerror="this.src = '../static/img/placeholder.png'" alt="submitted image" />
</div>
<span class="input-url text">
<input type="text" id="url" placeholder="http://" maxlength="320"/>
</span>
<div class="form-actions">
<input type="submit" id="submit" name="op" value="Submit" class="form-submit"/
</div>
</form>
答案 0 :(得分:2)
从目前的例子来看,这应该足够了:
function validate() {
return $('#img').attr('src') != '../static/img/placeholder.png';
}
$('#submit').on('click', function() {
return validate();
});
请在此处查看更详细的示例:http://jsfiddle.net/ENnLC/
答案 1 :(得分:1)
也许使用正则表达式来确认src包含placeholder.png
if( ( /placeholder\.png$/.test( $('#img').attr('src') ) ) {
return false;
}
还有一点。你的代码在这里
<img id="img" src="../static/img/placeholder.png" onerror="this.src = '../static/img/placeholder.png'" alt="submitted image" />
您正在onerror事件上加载相同的图像,该事件将尝试加载相同的图像并再次触发onerror事件并导致您进入无限循环。