2016-06-29 18 views
2

私はこのサンプル投稿で送信される値を変更するにはどうすればよいですか?

CODEのHTMLいます

<form method="post" class="add-patient"> 
      <div class="col-md-12"> 
       <fieldset> 
        <label for="lastname">Phone<span class="star">*</span></label> 
        <input class="required-input _phone" id="primary_phone" type="text" name="phone" maxlength="10" value="<?php echo $prInfo->clinicphone; ?>" placeholder="1234567890"> 
       </fieldset> 
      </div> 
      <div class="col-md-12"> 
       <div class="pull-right" id="save-bottom-add"> 
        <button type="Submit" id="btn-sub" class="btn btn-primary btn-save" onclick="DoSubmit()">Submit</button> 
       </div> 
      </div> 
    </form> 

CODE JS:

function DoSubmit(){ 
     var firstFormat = $("#primary_phone").val(); //ex format:(123) 123-1234 
     var lastFormat = firstFormat.replace(/\s/g, ''); //the new format should be: 123-123-1234 
     console.log(lastFormat); 
     return true; 
    } 

私が何をしたいのかは、入力の形式のテキストを変換する前に提出し、新しい形式で入力してPOST

方法を選んだのは正しいですか? この形式を変換するソリューションは何ですか?

この問題の解決方法を教えてもらえますか? ありがとうございます!このような

+1

私はちょうど入力をマスクすることをお勧めします。これをチェックしてください(リンク:http://digitalbush.com/projects/masked-input-plugin/) – guradio

+1

あなたは 'input'の値を新しいものに設定する必要があります(例えば' $( "#primary_phone ").val(lastFormat);') – Titus

+0

関数を置き換えるためにパラメータを変更する必要がありますか? –

答えて

1

何かが

function DoSubmit(){ 
    var firstFormat = $("#primary_phone").val(); //ex format:(123) 123-1234 
    var lastFormat = firstFormat.replace(/\D/g,"").replace(/(\d{3})(\d{3})(\d{4})/, '$1-$2-$3'); //new format: 123-123-1234 
    console.log(lastFormat); 
    // also do any substitution of value(s) here 
    // Ex:- $("#primary_phone").val(lastFormat); 
    return true; 
} 

$(".add-patient").submit(function() { 
    DoSubmit(); 
}); 

.submit()は、第1変形例で.on("submit", handler)、第三中.trigger("submit")のショートカットでトラックにあなたを取得する必要があります。 docs

更新:非数値文字について指摘していただきありがとうございます。 デモの更新コードとthis fiddleをご覧ください。

+0

はい、私はテキスト形式を変換する必要があります。 –

+0

@JohnSmith更新を参照してください。あなたの必要性を 'replace()'に変更しました。希望が助けてくれる! – Fr0zenFyr

+0

正規表現は最初に入力文字列を3桁、3桁、4桁に分割し、それらを目的のフォーマットに結合しました。 – Fr0zenFyr

0

これを試してください:あなたはもう何も変更する必要がいけないので

function DoSubmit(){ 
    var firstFormat = $("#primary_phone").val(); //ex format:(123) 123-1234 
    //First, replace all non-numeric character then, replace all groups of 3 numbers (not the ending group) with the group itself fallowed by a line. 
    var lastFormat = firstFormat.replace(/\D/g, "").replace(/(\d{3}(?!$))/g,"$1-"); 
    // Change the input's value to the new one. 
    $("#primary_phone").val(lastFormat); 
    return true; 
} 
関連する問題