2016-10-19 45 views
0

我需要發送一個表單到其中一個隱藏域由兩個其他域組成的域,這些域將由用戶(郵政編碼和第一行地址),在正則表達式之後只有數字保持「123 | 456」。如何編輯動態表單域來創建一個由兩個字段值組成的單個隱藏域

我試圖啓動,使用下面的代碼,在監視控制檯中的輸出。我已經設法動態編輯一個文本字段,以便顯示所有的數字,但這不適合用戶。所以我試圖將已編輯的文本字段數據存儲到隱藏字段中,同時留下完整的地址,但我無法看到如何做到這一點。

另外,有人可以解釋爲什麼如果我刪除註釋行變量沒有剝離任何字母,雖然只是1?

 $(document).ready(function() { 
 
     $("#testMe").on('propertychange change click keyup input paste', function() //attaching multiple handlers 
 
      { 
 
      var removedText = $("#testMe").val().replace(/\D/, ''); 
 
      $("#testMe").val(removedText); //only removes once if removed 
 
      console.log(removedText); 
 

 
      } 
 
     ); 
 
     })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<input type="hidden" id="hide" value=""> 
 
<input type="text" id="testMe" value=""> 
 
<span id="test2"></span>

回答

0

的問題是那種我不清楚,但是我盡力回答。

https://jsfiddle.net/ccu6j6xu/

<input type="hidden" id="hide" value=""> 
<input type="text" id="zip" value=""> 
<input type="text" id="address" value=""> 
<span id="test2"></span> 

在HTML,我所做的就是增加一個輸入,因爲我認爲這是你想要做什麼?

$(document).ready(function() { 
    $("#zip, #address").on('propertychange change click keyup input paste', function() { 
    var concatText = $("#zip").val().replace(/\D/g, '') + "|" + $("#address").val().replace(/\D/g, ''); 
    $("#test2").text(concatText); 
    $("#hide").val(concatText); 
    }); 
}); 

然後在JavaScript中,我改變了選擇器以匹配新的輸入,然後我改變了功能。

該函數的第一行定義了一個變量concatText來保存每個輸入的值與|字符之間。每個人都應用正則表達式去除最終值的字母。然後下一行更改要顯示的跨度值,最後一行將此值應用於隱藏的輸入。


同樣,問題是那種混亂給我,但隨意評論,我可以幫助一些更:)

編輯:重讀的問題,我覺得這個更好的答案

+0

混賬,在幾分鐘內打敗我。我正要發佈我的答案,然後我發現你修改了你的與我的非常相似。啊,我不會讓我的小提琴去浪費:https://jsfiddle.net/ek3s27u9/。 OP,你應該注意到正則表達式('g')中的全局修飾符,這會刪除匹配字符的所有匹配項,而不是第一個匹配項。 –

+0

@ lucadem1313非常感謝,這確實有辦法回答我的問題。剩下的唯一問題是填寫表格的用戶在將其輸入到表單中時需要看到例如「1234路」的整個地址,而編輯和放入隱藏字段在幕後進行。非常感謝您回答並添加所有這些代碼,非常感謝。對不起,我的問題很混亂,我已經花了2天時間來解決這個問題。 – user1777582

+0

我的編輯修復了它嗎? @ user1777582 – lucadem1313

相關問題