1. 程式人生 > >既能輸入又能選擇的下拉框

既能輸入又能選擇的下拉框

今天做專案時遇到了一個小難題:就是使用者可以自己輸入又能選擇的下拉框

程式碼如下:

<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>可以輸入的select標籤</title>
<script type="text/javascript" src="jquery-1.11.0.min.js"></script>
<body>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td>希望用於</td>
<select name="shool" id="select"  onchange="bb()" onkeydown="Select.del(this,event)"  onkeypress="Select.write(this,event)">      
<option value="0">請輸入用途</option>
    <option value="1">置業定投</option>
<option value="2">親子定投</option>
<option value="3">養老定投</option>
<option value="4">指贏定投</option>
<option value="5">大額定投</option>
<option disabled="disabled" selected="selected">請輸入或選擇專案</option>
</select></td>
          </tr>
        <tr>
          <td>我將準備</td>
          <td><input type="text" name="je" id="je" onkeyup="this.value= this.value.replace(/\D/g, '');" onafterpaste="this.value=this.value.replace(/\D/g,'')" >
            元</td>
        </tr>
        <tr>
          <td>我計劃定投</td>
          <td><input type="text" name="select3" id="selYear" onkeyup="this.value= this.value.replace(/\D/g, '');" onafterpaste="this.value=this.value.replace(/\D/g,'')" >
            年</td>
        </tr>
        <tr>
          <td>參考年均收益率為</td>
          <td><input type="text" name="sy" id="sy" placeholder="0" onkeyup="this.value= this.value.replace(/\D/g, '');" onafterpaste="this.value=this.value.replace(/\D/g,'')" > 
            %</td>
          </tr>
        <tr>
          <td>&nbsp;</td>
          <td><button onclick="calculator();" class="btn btn-warning btn-lg btn-calculator">開始計算</button> 您每月所需要投入<font color="#80071B"><a id="calculator_result" style="color: #FF0033"></a></font></td>
          </tr>
      </table> 
<script>    
var Select = { 
del : function(obj,e){   
        if((e.keyCode||e.which||e.charCode) == 8){   
            var opt = obj.options[0]; 
if(opt.text=="請輸入用途") opt.text="";
            opt.text = opt.value = opt.value.substring(0, opt.value.length>0?opt.value.length-1:0);   
        }   
    },   
    write : function(obj,e){
var i=0;
        if((e.keyCode||e.which||e.charCode) == 8)return ;   
        var opt = obj.options[0]; 
if((e.keyCode||e.which||e.charCode) != 13){
       opt.text += String.fromCharCode(e.charCode||e.which||e.keyCode);
}
       if((e.keyCode||e.which||e.charCode) == 13){
for(i=1;i< obj.options.length;i++){
if(obj.options[i].text==opt.text){
obj.options[i].selected = "selected";
opt.text="";
opt.value="0";
break;
}
else{
opt.value=opt.text;  
        opt.selected = "selected";
}
}
}   
    }
}
</script> 
<script type="text/javascript">
function bb(){
var obj=document.getElementById('select');
var d=obj.options[obj.options.selectedIndex].value;
if(d==1){
document.getElementById('je').value=200000;
document.getElementById('selYear').value=5;
document.getElementById('sy').value=20;
}
if(d==2){
document.getElementById('je').value=50000;
document.getElementById('selYear').value=3;
document.getElementById('sy').value=18;
}
if(d==3){
document.getElementById('je').value=80000;
document.getElementById('selYear').value=3;
document.getElementById('sy').value=10;
}
if(d==4){
document.getElementById('je').value=100000;
document.getElementById('selYear').value=3;
document.getElementById('sy').value=18;
}
if(d==5){
document.getElementById('je').value=150000;
document.getElementById('selYear').value=5;
document.getElementById('sy').value=10;
}


}


function calculator(){
var je=$("#je").val();
var selYear=$("#selYear").val();
var sy=$("#sy").val();
var cc=document .getElementById('select');
var ee=cc.options[cc.options.selectedIndex].text;
alert(ee);
var dd=cc.options[cc.options.selectedIndex].value;
if(ee=='請輸入用途'){
alert("請您填寫用途");
}else if(je==null || je==''){
alert("請您填寫經費");
}else if(selYear==null || selYear==''){
alert("請您填寫定投年限");
}else if(selYear<=0 || selYear>99){
alert("請您填寫定投年限在1-99之間");
   }else if(sy==null || sy==''){
alert("請您填寫參考年均收益率");
}else{
var A=0;
sy=sy/100.0;
A=(parseInt) (((je*sy)/(Math.pow((1+sy), selYear)-1))/12);
$("#calculator_result").html(A+"元");
}
}
</script>


</body>
</html>

相關推薦

Web前端—可以輸入可以選擇的input

又是一週,以前總說碼農碼農現在才理解為什麼這個職業剛開始就是搬磚的了 廢話就到此為止 今天給大家說一下如何利用HTML5特性寫一個既可以輸入又可以選擇的輸入框 其實在HTML5中,有這樣一個屬性的Input框 叫做 Datalist 顧名思義就是利用已有的Data為使用者提

輸入選擇

今天做專案時遇到了一個小難題:就是使用者可以自己輸入又能選擇的下拉框 程式碼如下: <html xmlns=" http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-T

選擇輸入控制元件,可以輸入可以選擇的控制元件

即拿即用,複製貼上,直接使用。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Do

【html】可輸入選擇

別跟我講需求!這是開發人員心裡無時無刻不在吶喊的話哪。。。 這段時間公司在開發個b2b電商後臺,需求人員和我們說,我這個下拉框是可以輸入的哦!我當時一臉懵逼,我接觸前端那麼久,我就還沒見過可輸入可選擇的下拉框,當時就感覺頓時豐富了我的三觀。沒辦法,那就上網搜唄

如何使select可以輸入可以選擇

<%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%>     <%@ taglib prefix="c" uri="http:/

輸入查詢功能匹配的幾種實現方式

sae idt hwnd 就會 bfd bmgr 使用方法 oaf adt 在Web開發中我們經常需要用戶進行輸入操作,輸入框內我們輸入幾個字,輸入框就會出現下拉提示你可能要輸入的完整信息。下面我總結了幾種常見的方案: 一:EasyUi combobox 組合框 具體使用方

jquery省份城市聯動選擇

<script type="text/javascript" src="__PUBLIC__/Medidata/js/jquery-1.8.3.min.js"></script> <script> var pro = ["北京","天津","上海","重慶",

C#如何在選擇選項的同時顯示對應資訊在窗體上

我也明白這個標題很繞嘴,但是我就是說不明白 解釋標題:     功能實現  我們先來分析一下,既然能選擇查詢就說明卡號和姓名是繫結的,我這裡的卡號和姓名是在一個表裡的兩個欄位。(多表可以用檢視聯起來查)那既然是在一個表

輸入功能的HTML--並且可以動態獲取文字的值

<DIV style="POSITION: absolute"><TABLE cellSpacing=0 cellPadding=0 border=0><TBODY><TR><TD><SELECT name=

selenium定位 百度搜索輸入關鍵字後,聯想出來的怎麼定位

百度搜索框輸入關鍵字後,下拉框聯想出來的怎麼定位? 百度下拉框聯想出來的我們按F12中的箭頭時,下拉框會消失收回去的。 這個時候怎麼辦呢 解決辦法: 就三個步驟 1.在百度搜索框輸入關鍵字“上

easyUI中年份,月份選擇選擇

           form表單內程式碼            <input type="text" class="jeasy-combobox" name="year" id="yearChoose">             js程式碼         

js根據輸入內容自動填充

這是AJAX的典型應用之一,即根據使用者在輸入框內輸入的內容來搜尋資料庫,然後把內容顯示出來,當然不一定非要顯示在下拉框中,也可以放在其它的地方,我們這裡只是把搜尋到的內容填充到下拉框中,以便使用者精確定位。效果圖如下: 一.JS需呼叫伺服器端方法及時響應客戶端使用者輸

vue對select賦初值後,不進行選擇的問題

Vue使用elementUI的select選擇器出現的問題:      初始化賦值後,無法更改label值,資料已經改變,但UI樣式為未變 原因:由於對此物件做了一些處理(將物件的鍵全部轉換成小寫),改變了物件的鍵和值,但是由於Vue檢測不到物件的變化,導致這個

工行網銀網上支付 提示選擇證書,但是空白,無法選擇導致不支付 解決辦法

      工行助手也已經檢查過,所有驅動都已經安裝正確,但就是支付時出現選擇證書,但證書下拉選單卻是空白沒法選擇,所以不能進行支付。      原來是 工行二代U盾證書服務沒有啟動,或被安全軟體禁用了。      進入C盤C:\WINDOWS\system32雙擊執行hh

DataTables實現移動端的載入嗎?可以,需要藉助一下Scroller外掛

一、 通常情況下,DataTables(Datatables是一款具有高階互動功能的jQuery表格外掛)只用來展示PC端Web網頁的大批量資料;但如果你想在移動端使用DataTables的話,也是可以的。因為DataTables能夠滿足移動端表格外掛的最基本的要求——支援下拉載入!

Ajax 的同步和非同步, 聯動 回顯第二個不回顯成功

Ajax 的同步和非同步,下拉框 聯動 回顯第二個不能回顯成功 示例: 使用Ajax 實現下拉框聯動 回顯 出現呢只有第一個能夠回顯成功 其餘的都不能正常回顯。 原因 :使用了Ajax的非同步 select的賦值再 非同步之前導致的 ( 賦值前個彈出 可以暫停賦值的執行順序 先載入後賦值 )

input 可以手動輸入亦可以進行模糊查詢

實用情景:對資料進行篩選的時候,往往會碰到客戶要求輸入框既可以手動輸入進行實時模糊查詢也可以進行下拉選擇。 基本html: <div class="organ-item">

js:可輸入選擇的select,可及時匹配包含輸入的內容(相容ie)

1、原理: 1.1將input輸入框和select框合併在一起,但是顯示出向下點選的按鈕: 這種比較容易做到 1.2出現輸入值能夠自動匹配的功能 動態的載入一個臨時的div出現在該input下方,當點選頁面中的空白地方,div隱藏。 1.3程式碼: <!docty

輸入選擇(input select)並且輸入獲得的內容

1、JSP程式碼 <div style="position:relative;margin-left: 10%;height: 30px; margin-top: 50px;" class="col-xs-6">         <span style="