       @$el.toggleClass("skiplogic__criterion--unspecified-question", not is_specified)
 
     bind_question_picker: () ->
-      @mark_question_specified +@$question_picker.val() != -1
-
-      @$question_picker.on 'change', (e) =>
-        @mark_question_specified true
-        # @presenter.change_question @$question_picker.val()
-        # replaced with e.val because of select2
-        @presenter.change_question e.val
+      questionVal = @$question_picker.val()
+
+      @mark_question_specified(questionVal isnt PLACEHOLDER_VALUE)
+
+      if questionVal isnt PLACEHOLDER_VALUE and questionVal isnt ''
+        @question_picker_view.disable_placeholder_option()
+
+      @$question_picker.on('change', (e) =>
+        if e.val is PLACEHOLDER_VALUE
+          console.error("Changing question to #{PLACEHOLDER_VALUE} should not happen!")
+
+        @mark_question_specified(e.val isnt PLACEHOLDER_VALUE)
+        @presenter.change_question(e.val)
+        return
+      )
+      return
 
     bind_operator_picker: () ->
       @$operator_picker.on 'change', () =>

$viewWidgets = require './view.widgets'
$skipLogicHelpers = require './mv.skipLogicHelpers'
_t = require('utils').t

module.exports = do ->
  viewRowDetailSkipLogic = {}

    className: 'skiplogic__rowselect'

    render: () ->
      super()

      # HACK disable placeholder option on load and after change
      if @$el.val() isnt PLACEHOLDER_VALUE
        @disable_placeholder_option()
      @$el.on('change', @disable_placeholder_option.bind(@))

      return @

    disable_placeholder_option: ->
      $firstChild = @$el.children(':first')
      if $firstChild.val() is PLACEHOLDER_VALUE
        $firstChild.prop('disabled', true)
      return

    attach_to: (target) ->
      target.find('.skiplogic__rowselect').remove()
