使用javascript访问img src

时间:2012-12-22 00:31:41

标签: javascript jquery forms

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>

2 个答案:

答案 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事件并导致您进入无限循环。