title: Signals and Observer(Reactive Swift) for form validation not working as expected
body: <p><strong>I am doing form validation using reactive swift. But I faced issue on resetting value &amp; signal value.</strong></p>
  
  <p>When I fill all the textfield correctly as directed by validation rule all signals(textfield continuoustextvalues) produce true value, which will allow me to send form data. I reset values of textfield after completion of form submission. After that I send false value to all signal Observer. But when I start filling textfield it will get previous true signal and allow me to send data without any validation rule applied. that means I can't reset signal value </p>
  
  <p>Any help would be really appreciated. </p>
  
  <p><strong>My Problem:</strong></p>
  
  <pre><code>import UIKit
  import ReactiveSwift
  import Result
  
  class ContactVC: BaseViewController {
  
      @IBOutlet weak var textFieldName: JVFloatLabeledTextField!
      @IBOutlet weak var textFieldPhoneOL: JVFloatLabeledTextField!
      @IBOutlet weak var textViewComent: UITextView!
      @IBOutlet weak var textFieldLocationOL: JVFloatLabeledTextField!
      @IBOutlet weak var textFieldEmailOL: JVFloatLabeledTextField!
      @IBOutlet weak var btnSubmitOL: PGSpringAnimation!
  
      var (nameValidationSignal, nameValidationObserver) = Signal&lt;Bool, NoError&gt;.pipe()
      var (phoneValidationSignal, phoneValidationObserver) = Signal&lt;Bool, NoError&gt;.pipe()
      var (emailValidationSignal, emailValidationObserver) = Signal&lt;Bool, NoError&gt;.pipe()
      var (locationValidationSignal, locationValidationObserver) = Signal&lt;Bool, NoError&gt;.pipe()
      var (commentValidationSignal, commentValidationObserver) = Signal&lt;Bool, NoError&gt;.pipe()
  
  
      override func viewDidLoad() {
          super.viewDidLoad()
  
      }
  
  
      override func viewDidAppear(_ animated: Bool) {
          super.viewDidAppear(animated)
          self.formValidation()
      }
  
      // MARK: - submit button action
      @IBAction func btnSubmitAction(_ sender: Any) {
  
          let params  = ["name":textFieldName.text!,"email":textFieldEmailOL.text!,"location":textFieldLocationOL.text!,"message":textViewComent.text!,"phone":textFieldPhoneOL.text!]
  
          APIManager(urlString:enumUrl.ContactAdmin.mainURL(),parameters:params as [String : AnyObject]?,method: .post).handleResponse(viewController: self, progressMessage: "downloading", completionHandler:  { (response : AllResponse) in
  
              self.nameValidationObserver.send(value: false)
              self.emailValidationObserver.send(value: false)
              self.phoneValidationObserver.send(value: false)
              self.locationValidationObserver.send(value: false)
              self.commentValidationObserver.send(value: false)
  
              self.btnSubmitOL.backgroundColor = UIColor.gray
              self.btnSubmitOL.isUserInteractionEnabled = false
  
          })
  
      }
      // MARK: - validation textfield
  
      func formValidation(){
  
          self.btnSubmitOL.backgroundColor = UIColor.gray
          self.btnSubmitOL.isUserInteractionEnabled = false
  
          // Create signals
  
          // Signals for TextFields
          self.nameValidationSignal = self.textFieldName.reactive.continuousTextValues
              .map{ ($0?.characters.count ?? 0) &gt;= 3 }
          self.phoneValidationSignal = self.textFieldPhoneOL.reactive.continuousTextValues
              .map{ ($0?.characters.count ?? 0 ) &gt;= 8 }
          self.emailValidationSignal = self.textFieldEmailOL.reactive.continuousTextValues
              .map{ $0?.isEmail ??  false }
          self.locationValidationSignal = self.textFieldLocationOL.reactive.continuousTextValues
              .map{ ($0?.characters.count ?? 0) &gt;= 3 }
          self.commentValidationSignal = self.textViewComent.reactive.continuousTextValues
              .map{ ($0?.characters.count ?? 0) &gt;= 5 }
  
          // Observe TextFields Singals for Changing UI
          self.nameValidationSignal.observeValues { value in
              self.textFieldName.floatingLabelActiveTextColor = value ? UIColor.red : UIColor.black
              self.textFieldName.floatingLabel.text = value ? "name".localize : "Name must be greater than 4 characters".localize
          }
  
          self.phoneValidationSignal.observeValues { value in
              self.textFieldPhoneOL.floatingLabelActiveTextColor = value ? UIColor.red : UIColor.black
              self.textFieldPhoneOL.floatingLabel.text = value ? "phone".localize : "Phone must be greater than 7 characters".localize
          }
  
          self.emailValidationSignal.observeValues { value in
              self.textFieldEmailOL.floatingLabelActiveTextColor = value ? UIColor.red : UIColor.black
              self.textFieldEmailOL.floatingLabel.text = value ? "email".localize : "Email must be of type example@test.com".localize
          }
  
          self.locationValidationSignal.observeValues { value in
              self.textFieldLocationOL.floatingLabelActiveTextColor = value ? UIColor.red : UIColor.black
              self.textFieldLocationOL.floatingLabel.text = value ? "location".localize : "Loation must be greater than 4 characters".localize
          }
  
          self.commentValidationSignal.observeValues { value in
              self.textViewComent.textColor = value ? UIColor.red : UIColor.black
          }
  
  
          let formValidationSignal = nameValidationSignal.combineLatest(with: phoneValidationSignal).combineLatest(with: emailValidationSignal).combineLatest(with: locationValidationSignal).combineLatest(with: commentValidationSignal)
              .map {
                  $0.0.0.0 &amp;&amp; $0.0.0.1 &amp;&amp;  $0.0.1 &amp;&amp; $0.1 &amp;&amp; $1
          }
  
  
          formValidationSignal.observeValues {
                  self.btnSubmitOL.isUserInteractionEnabled = $0
                  self.btnSubmitOL.backgroundColor = $0 ? UIColor.appRedColor() : UIColor.gray
          }
      }
  
  }
  </code></pre>
  
  <p>I have made solution to this problem but I don't think it's perfect way and the reactive is not way I have done to solve. 
  I am waiting for perfect or most accepted Solution.
  Any help or answer is really Appreciated.</p>