0

javascript最初の関数が検証された後、2番目の関数が検証して値を返す必要があるように、2つの関数を追加したいと思います。しかし、私の場合、実行しているのは1つだけです:

コードは次のとおりです。

<html>
<script type="text/javascript">
function validate(){
var name_value=document.getElementById('qs').value;
if(name_value=="")
{
alert("Please enter your keyword");
}
}
var ray={ajax:function(st)
    {
        this.show('load');
    },
show:function(el)
    {
        this.getID(el).style.display='';
    },
getID:function(el)
    {
        return document.getElementById(el);
    }
}
</script>
<style type="text/css">
#load {
    background: none repeat scroll 0 0 #F7F7F7;
    border: 1px double #999999;
    font-family: "Trebuchet MS",verdana,arial,tahoma;
    height: 50px;
    left: 45%;
    line-height: 50px;
    margin-left: -150px;
    margin-top: -50px;
    position: absolute;
    text-align: center;
    top: 50%;
    width: 350px;
    z-index: 1;
}
</style>
<body>
<div id="load" style="display:none;"><strong>Please wait while we process your request...</strong></div>
<form action="http://www.example.com" method="post" onSubmit="validate() && return ray.ajax()">
<input type="text" value="" name="q" id="qs">
<input type="submit" value="Search">
</form>
</body>
</html>

上記のコードでは、タグvalidate()を削除return ray.ajax()した場合にのみ機能します。<form>しかし、私は両方が機能することを望んでいtextbox isEmptyます。alertPlease wait...

それを達成する方法は?前もって感謝します...

4

1 に答える 1

1

試す

function validate(){
    var name_value=document.getElementById('qs').value;

    if(name_value=="")
    {
        alert("Please enter your keyword");
        return false;
    }
    return true;
}
var ray={
    ajax:function(st)
    {
        this.show('load');
        return true
    },
    show:function(el)
    {
        this.getID(el).style.display='';
    },
    getID:function(el)
    {
        return document.getElementById(el);
    }
}

<form action="http://www.example.com" method="post" onSubmit="return validate() && ray.ajax()">
于 2013-08-20T12:16:21.653 に答える