用jquery设置边框颜色

时间:2013-09-24 09:25:10

标签: jquery

我在一个带有单个文本框的html页面中有一个简单的表单。如果我单击文本框中没有任何值的提交按钮,那么文本框的边框颜色应为红色。这是我的代码

$(document).ready(function(){
  $('.ip').click(function(){
    var optionSelected = false;
    if($('#test').val().length == 0 ) {
      $("#test").css("border-color","red"); 
    }
  });
});

这是表格

<form action="" id="form1">
Test:<input type="text" name="test" id="test">
<input type="submit" class ="ip">
</form>

但是发生的事情是,如果我单击文本框中没有任何值的提交按钮,则文本框的边框颜色会暂时设置为红色。红色的boder不会保留在文本框中

3 个答案:

答案 0 :(得分:4)

添加一个返回false,我猜表单确实已提交并重新加载:

$(document).ready(function(){
  $('.ip').click(function(){
    var optionSelected = false;
    if($('#test').val().length == 0 ) {
      $("#test").css("border-color","red");
      return false;
    }
  });
});

答案 1 :(得分:1)

使用return falsecss("border","1px solid red")代替css("border-color","red")

$(document).ready(function(){
  $('.ip').click(function(){
    var optionSelected = false;
    if($('#test').val().length == 0 ) {
      $("#test").css("border","1px solid red");//more efficient
      return false;
    }
  });
});

DEMO

答案 2 :(得分:1)

如果您使用表单,这是一种更好的方法。我没有使用点击事件,而是使用提交事件。

$(document).ready(function(){
  $('#form1').submit(function(e) {
    var optionSelected = false;
    if($('#test').val().length != 0 ) {
      return true;
    } else { 
      $("#test").css("border-color","red");
    }

    e.preventDefault();
  });
});

以下是jsfiddle:http://jsfiddle.net/UtqcA/