源码-JavaScript&jQuery交互式前端开发-第6章-事件-表单事件

表单事件包括:

1. 提交事件(submit)——用来在将表单数据发送到服务器之前,校验用户输入

2. 变化事件(change)——表单元素状态发生变化时触发(建议使用change事件取代某些click事件,用户不一定只使用鼠标来和表单元素交互,还可能通过Tab键、方向键或回车键来进行交互)

3. 键入事件(input)


示例:根据用户选择提示、比选项校验

示例效果:


JS代码如下:

var elForm, elSelectPackage, elPackageHint, elTerms, elTermsHint; // Declare variables
elForm          = document.getElementById('formSignup');          // Store elements
elSelectPackage = document.getElementById('package');
elPackageHint   = document.getElementById('packageHint');
elTerms         = document.getElementById('terms');
elTermsHint     = document.getElementById('termsHint');

function packageHint() {                                 // Declare function
  var pack = this.options[this.selectedIndex].value;     // Get selected option
  if (pack === 'monthly') {                              // If monthly package
    elPackageHint.innerHTML = 'Save $10 if you pay for 1 year!';//Show this msg
  } else {                                               // Otherwise
    elPackageHint.innerHTML = 'Wise choice!';            // Show this message
  }
}

function checkTerms(event) {                             // Declare function
  if (!elTerms.checked) {                                // If checkbox ticked
    elTermsHint.innerHTML = 'You must agree to the terms.'; // Show message
    event.preventDefault();                              // Don't submit form
  }
}

//Create event listeners: submit calls checkTerms(), change calls packageHint()
elForm.addEventListener('submit', checkTerms, false);
elSelectPackage.addEventListener('change', packageHint, false);


HTML代码如下:

<!DOCTYPE html>
<html>
  <head>
    <title>JavaScript & jQuery - Chapter 6: Events - Form Events</title>
    <link rel="stylesheet" href="css/c06.css" />
  </head>
  <body>
    <div id="page">
      <h1>List King</h1>
      <form method="post" action="http://www.example.org/register" id="formSignup">
        <h2>Membership</h2>

        <label for="package" class="selectbox"> Select a package: </label>
        <select id="package">
          <option value="annual">1 year ($50)</option>
          <option value="monthly">1 month ($5)</option>
        </select>
        <div id="packageHint" class="tip"></div>

        <input type="checkbox" id="terms" />
        <label for="terms" class="checkbox"> Check to agree to terms & conditions</label>
        <div id="termsHint" class="warning"></div>

        <input type="submit" value="next" />

        </form>
      </div>
      <script src="js/form.js"></script>
    </body>
</html>


CSS代码:(参考源码-JavaScript&jQuery交互式前端开发-第6章-事件-Focus和blur事件,http://blog.csdn.net/hpdlzu80100/article/details/52651002


PS:这个示例还是很实用的!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值